Moibe commited on
Commit
4d7403b
·
1 Parent(s): 53423e3

Optimización seguridad obtención data

Browse files
Files changed (3) hide show
  1. avaimet.py +3 -3
  2. funciones.py +70 -70
  3. main.py +75 -76
avaimet.py CHANGED
@@ -32,10 +32,10 @@ def obtenData(sftp, dir_data):
32
  with sftp.open(dir_data, 'rb') as archivo:
33
  # Leer el contenido del archivo como bytes
34
  contenido = archivo.read()
35
-
36
  print("Imprimiendo contenido: ", contenido)
37
- print("182 El tipo de contenido obtenido es: ", type(contenido))
38
-
 
39
  return contenido
40
 
41
  def obtenCaja(userfile):
 
32
  with sftp.open(dir_data, 'rb') as archivo:
33
  # Leer el contenido del archivo como bytes
34
  contenido = archivo.read()
 
35
  print("Imprimiendo contenido: ", contenido)
36
+ print("El tipo de contenido obtenido es: ", type(contenido))
37
+ print("Esperando 32 segundos, porque analizaremos como es data y como extraer un renglón.")
38
+ time.sleep(32)
39
  return contenido
40
 
41
  def obtenCaja(userfile):
funciones.py CHANGED
@@ -1,70 +1,70 @@
1
- import time
2
- import avaimet
3
-
4
- def getData():
5
-
6
- #Genera conexión inicial.
7
- sshListo, sftpListo = avaimet.conecta()
8
- #Obtiene la caja donde está guardados los tokens.
9
- dir_data = avaimet.obtenDirData()
10
-
11
- data = avaimet.obtenData(sftpListo, dir_data)
12
- #Cierra la conexión.
13
- avaimet.cierraConexion(sshListo, sftpListo)
14
-
15
- return data
16
-
17
- def getTokens(userfile):
18
-
19
- #Genera conexión inicial.
20
- sshListo, sftpListo = avaimet.conecta()
21
- #Obtiene la caja donde está guardados los tokens.
22
- caja = avaimet.obtenCaja(userfile)
23
- #Obtiene los tokens que hay en esa caja.
24
- tokens = avaimet.obtenTokens(sftpListo, caja)
25
- #Cierra la conexión.
26
- avaimet.cierraConexion(sshListo, sftpListo)
27
-
28
- return tokens
29
-
30
- def authorize(tokens, work):
31
-
32
- print(f"Task received : {work}, type: {type(work)} ...")
33
-
34
- ##Ésta sección se reutilizará si en lugar de pasar el parámetro token, se pasa el parámetro userfile.
35
- #Actualmente no lo pedimos porque es el developer el que pone la cantidad de tokens que el usuario tiene para...
36
- #...evitar otra vuelta al server, por mayor certeza o seguridad se puede hacer esa ida.
37
- #En un futuro incluso se pueden hacer los dos tipos de autorización en dos endpoints distintos. O en un solo endpoint con...
38
- #...las dos opciones.
39
-
40
- #Genera conexión inicial.
41
- #sshListo, sftpListo = avaimet.conecta()
42
- #Obtiene la caja donde está guardados los tokens.
43
- #caja = avaimet.obtenCaja(userfile)
44
- #Obtiene los tokens que hay en esa caja.
45
- #tokens = avaimet.obtenTokens(sftpListo, caja)
46
-
47
- #True si autoriza o false si no autoriza.
48
- result = avaimet.autoriza(tokens, work)
49
-
50
- #Cierra la conexión.
51
- #avaimet.cierraConexion(sshListo, sftpListo)
52
-
53
- return result
54
-
55
- def debitTokens(userfile, work):
56
-
57
- print(f"Task received : {work}, type: {type(work)} ...")
58
-
59
- #Genera conexión inicial.
60
- sshListo, sftpListo = avaimet.conecta()
61
- #Obtiene la caja donde está guardados los tokens.
62
- caja = avaimet.obtenCaja(userfile)
63
- #Obtiene los tokens que hay en esa caja.
64
- tokens = avaimet.obtenTokens(sftpListo, caja)
65
- #Aplica las reglas de ésta app para debitar lo correspondiente.
66
- resultado_debitado = avaimet.restaToken(sftpListo, caja, tokens, work)
67
- #Cierra la conexión.
68
- avaimet.cierraConexion(sshListo, sftpListo)
69
-
70
- return resultado_debitado
 
1
+ import time
2
+ import avaimet
3
+
4
+ def getData():
5
+
6
+ #Genera conexión inicial.
7
+ sshListo, sftpListo = avaimet.conecta()
8
+ #Obtiene la caja donde está guardados los tokens.
9
+ dir_data = avaimet.obtenDirData()
10
+ #Obtiene el json con los datos.
11
+ data = avaimet.obtenData(sftpListo, dir_data)
12
+ #Cierra la conexión.
13
+ avaimet.cierraConexion(sshListo, sftpListo)
14
+
15
+ return data
16
+
17
+ def getTokens(userfile):
18
+
19
+ #Genera conexión inicial.
20
+ sshListo, sftpListo = avaimet.conecta()
21
+ #Obtiene la caja donde está guardados los tokens.
22
+ caja = avaimet.obtenCaja(userfile)
23
+ #Obtiene los tokens que hay en esa caja.
24
+ tokens = avaimet.obtenTokens(sftpListo, caja)
25
+ #Cierra la conexión.
26
+ avaimet.cierraConexion(sshListo, sftpListo)
27
+
28
+ return tokens
29
+
30
+ def authorize(tokens, work):
31
+
32
+ print(f"Task received : {work}, type: {type(work)} ...")
33
+
34
+ ##Ésta sección se reutilizará si en lugar de pasar el parámetro token, se pasa el parámetro userfile.
35
+ #Actualmente no lo pedimos porque es el developer el que pone la cantidad de tokens que el usuario tiene para...
36
+ #...evitar otra vuelta al server, por mayor certeza o seguridad se puede hacer esa ida.
37
+ #En un futuro incluso se pueden hacer los dos tipos de autorización en dos endpoints distintos. O en un solo endpoint con...
38
+ #...las dos opciones.
39
+
40
+ #Genera conexión inicial.
41
+ #sshListo, sftpListo = avaimet.conecta()
42
+ #Obtiene la caja donde está guardados los tokens.
43
+ #caja = avaimet.obtenCaja(userfile)
44
+ #Obtiene los tokens que hay en esa caja.
45
+ #tokens = avaimet.obtenTokens(sftpListo, caja)
46
+
47
+ #True si autoriza o false si no autoriza.
48
+ result = avaimet.autoriza(tokens, work)
49
+
50
+ #Cierra la conexión.
51
+ #avaimet.cierraConexion(sshListo, sftpListo)
52
+
53
+ return result
54
+
55
+ def debitTokens(userfile, work):
56
+
57
+ print(f"Task received : {work}, type: {type(work)} ...")
58
+
59
+ #Genera conexión inicial.
60
+ sshListo, sftpListo = avaimet.conecta()
61
+ #Obtiene la caja donde está guardados los tokens.
62
+ caja = avaimet.obtenCaja(userfile)
63
+ #Obtiene los tokens que hay en esa caja.
64
+ tokens = avaimet.obtenTokens(sftpListo, caja)
65
+ #Aplica las reglas de ésta app para debitar lo correspondiente.
66
+ resultado_debitado = avaimet.restaToken(sftpListo, caja, tokens, work)
67
+ #Cierra la conexión.
68
+ avaimet.cierraConexion(sshListo, sftpListo)
69
+
70
+ return resultado_debitado
main.py CHANGED
@@ -1,77 +1,76 @@
1
- from fastapi import FastAPI
2
- import funciones
3
-
4
- app = FastAPI()
5
-
6
- @app.get("/")
7
- def start():
8
-
9
- return {"Status":"Deployed"}
10
-
11
- ## GET DATA ##
12
-
13
- #Vía Path
14
- @app.get("/getData/")
15
- def getData():
16
- data = funciones.getData()
17
-
18
- print("Tipo de resultado:", type(data))
19
- return data
20
-
21
- #Vía Query
22
- #Quizá no es necesaria vía Query porque no pide parámetros.
23
- @app.get("/getDataQ/")
24
- def getData():
25
- data = funciones.getData()
26
- print("Tipo de resultado:", type(data))
27
- return data
28
-
29
-
30
- ## GET TOKENS ##
31
-
32
- #Vía Path
33
- @app.get("/getTokens/{userfile}")
34
- def getTokens(userfile: str):
35
- tokens = funciones.getTokens(userfile)
36
- print("Tipo de resultado:", type(tokens))
37
- return tokens
38
-
39
- #Vía Query
40
- @app.get("/getTokensQ/")
41
- def getTokens(userfile: str = "gAAAAABmEZA4SLBC2YczouOrjIEi9WNCNGOIvyUcqBUnzxNsftXTdy54KaX9x8mAjFkABSI6FJrdZDQKk_5lpJOgJoMChxlniw=="):
42
- tokens = funciones.getTokens(userfile)
43
- print("Tipo de resultado:", type(tokens))
44
- return tokens
45
-
46
- ## AUTHORIZE WORK ##
47
-
48
- #Vía Parameters
49
- @app.get("/authorize/{tokens}/{work}")
50
- def authorize(tokens: int, work: str):
51
- autorizacion = funciones.authorize(tokens, work)
52
- print("Tipo de resultado:", type(autorizacion))
53
- return autorizacion
54
-
55
- #Vía Query
56
- @app.get("/authorizeQ/")
57
- def authorize(tokens: int, work: str = "picswap"):
58
- autorizacion = funciones.authorize(tokens,work)
59
- print("Tipo de resultado:", type(autorizacion))
60
- return autorizacion
61
-
62
-
63
- ## DEBIT TOKENS ##
64
-
65
- #Vía Parámeters
66
- @app.get("/debitTokens/{userfile}/{work}")
67
- def debitTokens(userfile: str, work: str):
68
- tokens = funciones.debitTokens(userfile,work)
69
- print("Tipo de resultado:", type(tokens))
70
- return tokens
71
-
72
- #Vía Query
73
- @app.get("/debitTokensQ/")
74
- def debitTokens(userfile: str, work: str = "picswap"):
75
- tokens = funciones.debitTokens(userfile,work)
76
- print("Tipo de resultado:", type(tokens))
77
  return tokens
 
1
+ from fastapi import FastAPI
2
+ import funciones
3
+
4
+ app = FastAPI()
5
+
6
+ @app.get("/")
7
+ def start():
8
+
9
+ return {"Status":"Deployed"}
10
+
11
+ ## GET DATA ##
12
+
13
+ #Vía Path
14
+ @app.get("/getData/")
15
+ def getData():
16
+ data = funciones.getData()
17
+ print("Tipo de resultado:", type(data))
18
+ return data
19
+
20
+ #Vía Query
21
+ #Quizá no es necesaria vía Query porque no pide parámetros.
22
+ @app.get("/getDataQ/")
23
+ def getData():
24
+ data = funciones.getData()
25
+ print("Tipo de resultado:", type(data))
26
+ return data
27
+
28
+
29
+ ## GET TOKENS ##
30
+
31
+ #Vía Path
32
+ @app.get("/getTokens/{userfile}")
33
+ def getTokens(userfile: str):
34
+ tokens = funciones.getTokens(userfile)
35
+ print("Tipo de resultado:", type(tokens))
36
+ return tokens
37
+
38
+ #Vía Query
39
+ @app.get("/getTokensQ/")
40
+ def getTokens(userfile: str = "gAAAAABmEZA4SLBC2YczouOrjIEi9WNCNGOIvyUcqBUnzxNsftXTdy54KaX9x8mAjFkABSI6FJrdZDQKk_5lpJOgJoMChxlniw=="):
41
+ tokens = funciones.getTokens(userfile)
42
+ print("Tipo de resultado:", type(tokens))
43
+ return tokens
44
+
45
+ ## AUTHORIZE WORK ##
46
+
47
+ #Vía Parameters
48
+ @app.get("/authorize/{tokens}/{work}")
49
+ def authorize(tokens: int, work: str):
50
+ autorizacion = funciones.authorize(tokens, work)
51
+ print("Tipo de resultado:", type(autorizacion))
52
+ return autorizacion
53
+
54
+ #Vía Query
55
+ @app.get("/authorizeQ/")
56
+ def authorize(tokens: int, work: str = "picswap"):
57
+ autorizacion = funciones.authorize(tokens,work)
58
+ print("Tipo de resultado:", type(autorizacion))
59
+ return autorizacion
60
+
61
+
62
+ ## DEBIT TOKENS ##
63
+
64
+ #Vía Parámeters
65
+ @app.get("/debitTokens/{userfile}/{work}")
66
+ def debitTokens(userfile: str, work: str):
67
+ tokens = funciones.debitTokens(userfile,work)
68
+ print("Tipo de resultado:", type(tokens))
69
+ return tokens
70
+
71
+ #Vía Query
72
+ @app.get("/debitTokensQ/")
73
+ def debitTokens(userfile: str, work: str = "picswap"):
74
+ tokens = funciones.debitTokens(userfile,work)
75
+ print("Tipo de resultado:", type(tokens))
 
76
  return tokens