File size: 4,864 Bytes
94b8c12
 
 
 
76fd605
94b8c12
8de6f2c
94b8c12
 
 
76fd605
d5c64bc
5f45547
76fd605
5f45547
901822a
94b8c12
 
 
 
 
 
 
b85eeeb
94b8c12
 
 
b85eeeb
94b8c12
 
 
 
 
 
 
 
 
614b43b
94b8c12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2647683
94b8c12
 
 
2647683
94b8c12
 
 
 
 
 
 
 
817b819
 
 
0ad66b3
817b819
0ad66b3
817b819
 
9ae7735
817b819
 
 
 
 
 
9ae7735
817b819
 
 
 
 
 
 
 
 
 
d5c64bc
94b8c12
 
1693b69
94b8c12
 
1693b69
94b8c12
d5c64bc
 
1693b69
94b8c12
 
614b43b
94b8c12
 
 
 
 
706f7ed
94b8c12
d5c64bc
94b8c12
 
 
 
 
 
901822a
94b8c12
 
 
d5c64bc
bf151d0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
import ast
import tools
import avaimet
import globales
import nycklar.nodes as nodes

#Aqu铆 van las funciones principales, las que son llamadas directo por la API.
#Las que interactuan con el servidor est谩n en el m贸dulo avaimet.
#Y las herramientas adicionales est谩n en tools.

def getData(aplicacion):
    
    sshListo, sftpListo = avaimet.conecta()        
    #dir_data = avaimet.obtenDireccionArchivo() #Coment茅 茅ste pq me estar铆a ahorrando 茅sta funci贸n as铆:
    dir_data = nodes.users_data + aplicacion + globales.data    
   
    #Obtiene el json con los datos.
    data = avaimet.obtenContenidoArchivo(sftpListo, dir_data)    
    #Cierra la conexi贸n.    
    avaimet.cierraConexion(sshListo, sftpListo)
    
    return data

def getTokens(userfile, env):
    #Genera conexi贸n inicial.       
    sshListo, sftpListo = avaimet.conecta()
    #Obtiene la caja donde est谩 guardados los tokens.
    caja = avaimet.obtenCaja(userfile, env)
    #Obtiene los tokens que hay en esa caja.
    tokens = avaimet.obtenTokens(sftpListo, caja)
    #Cierra la conexi贸n.    
    avaimet.cierraConexion(sshListo, sftpListo)
    
    return tokens

def authorize(tokens, work):

    #print(f"Task received : {work}, type: {type(work)} ...")

    ##脡sta secci贸n se reutilizar谩 si en lugar de pasar el par谩metro token, se pasa el par谩metro userfile.
    #Actualmente no lo pedimos porque es el developer el que pone la cantidad de tokens que el usuario tiene para...
    #...evitar otra vuelta al server, por mayor certeza o seguridad se puede hacer esa ida. 
    #En un futuro incluso se pueden hacer los dos tipos de autorizaci贸n en dos endpoints distintos. O en un solo endpoint con...
    #...las dos opciones. 

    #Genera conexi贸n inicial.
    #sshListo, sftpListo = avaimet.conecta()
    #Obtiene la caja donde est谩 guardados los tokens.
    #caja = avaimet.obtenCaja(userfile)
    #Obtiene los tokens que hay en esa caja.
    #tokens = avaimet.obtenTokens(sftpListo, caja)
    
    #True si autoriza o false si no autoriza.
    result = avaimet.autoriza(tokens, work)
    
    #Cierra la conexi贸n.  
    #avaimet.cierraConexion(sshListo, sftpListo)

    return result

def debitTokens(userfile, work, env):
    #Genera conexi贸n inicial.
    sshListo, sftpListo = avaimet.conecta()
    #Obtiene la caja donde est谩 guardados los tokens.
    caja = avaimet.obtenCaja(userfile, env)
    #Obtiene los tokens que hay en esa caja.
    tokens = avaimet.obtenTokens(sftpListo, caja)
    #Aplica las reglas de 茅sta app para debitar lo correspondiente.
    resultado_debitado = avaimet.restaToken(sftpListo, caja, tokens, work)
    #Cierra la conexi贸n.  
    avaimet.cierraConexion(sshListo, sftpListo)
    return resultado_debitado

def getQuota():
    #Genera conexi贸n inicial.
    sshListo, sftpListo = avaimet.conecta()
    dir_quota = nodes.quota + globales.quota    
    #Obtiene el json con los datos.
    data = avaimet.obtenContenidoArchivo(sftpListo, dir_quota)    
    #Cierra la conexi贸n.  
    avaimet.cierraConexion(sshListo, sftpListo)
    return int(data)

def updateQuota(costo_proceso):

    #Genera conexi贸n inicial.
    sshListo, sftpListo = avaimet.conecta()
    dir_quota = nodes.quota + globales.quota
 
    #Obtiene el json con los datos.
    quota_actual = avaimet.obtenContenidoArchivo(sftpListo, dir_quota)

    #Aplica las reglas de 茅sta app para debitar lo correspondiente.
    quota_modificada = avaimet.modificaQuota(sftpListo, dir_quota, quota_actual, costo_proceso)
    #Cierra la conexi贸n.  
    avaimet.cierraConexion(sshListo, sftpListo)

    return quota_modificada

def getUserNovelty(userfile, aplicacion):

    usuario = tools.decompileUser(userfile)

    #Genera conexi贸n inicial (general para cualquier funci贸n.)  
    sshListo, sftpListo = avaimet.conecta()

    #Obtiene la caja donde est谩 guardados las flags de novelty.
    #dir_data = avaimet.obtenDireccionArchivo(globales.novelty)
    dir_data = nodes.users_data + aplicacion + globales.novelty

    #Obtiene el json con los datos.
    data = avaimet.obtenContenidoArchivo(sftpListo, dir_data)
   
    # Convertir el string a una lista de tuplas utilizando ast.literal_eval()
    lista_tuplas = ast.literal_eval(data)
    tupla_encontrada = None  # Inicializamos una variable para almacenar la tupla encontrada

    avaimet.cierraConexion(sshListo, sftpListo)
    #Future, 驴se puede acaso que se cierre el contenido y que haga la conversi贸n al mismo tiempo? (threads)   

    #Repasa todas las tuplas
    for tupla in lista_tuplas:
        if tupla[0] == usuario:
            tupla_encontrada = tupla
            break

    if tupla_encontrada:
        #print("Usuario encontrado:", tupla_encontrada)
        novelty = tupla_encontrada[1]
        return novelty
    else:
        print("No se encontr贸 ese usuario.")
        return "no user"