File size: 4,078 Bytes
94b8c12
76fd605
94b8c12
 
 
76fd605
94b8c12
8de6f2c
94b8c12
 
 
76fd605
 
 
 
94b8c12
76fd605
 
 
 
 
8de6f2c
94b8c12
 
 
 
 
 
 
b85eeeb
94b8c12
 
 
b85eeeb
94b8c12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import ast
import time
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):
    #Genera conexi贸n inicial.
    print("Estoy en getData...")

    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

    print("脡sto es dir data...", dir_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):

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

    #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)
    #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 getUserNovelty(userfile):

    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)
    #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?    

    for tupla in lista_tuplas:
        if tupla[0] == usuario:
            tupla_encontrada = tupla
            break

    if tupla_encontrada:
        print("La tupla encontrada es:", tupla_encontrada)
        novelty = tupla_encontrada[1]
        return novelty
    else:
        print("No se encontr贸 ninguna tupla con el texto especificado.")
        return "no user"