File size: 1,866 Bytes
ae1f1c7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b6140a0
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
import theApp
import nodes
import sulkuGateway
import sulkuPypi
import time

#Flux capacitor une la Autenticación y la App.
def do(access, content):

	print("Esto es access: ", access)
	print("Esto es content: ", content)
	time.sleep(10)

	print("Entré a flux_capacitor.do...")
	
	#AUTENTICACIÓN#
 	#Obten cantidad de tokens dispobibles vía Sulku para ese usuario.
	#resultado = sulkuGateway.getTokens(access)
	resultado = sulkuPypi.getTokens(access)

	#Un try para convertirlo en entero porque quizá bajo alguna circunstancia no sea un número lo que regresa y marcará error al aplicarle int().
	try:
		resultado = int(resultado)
	except ValueError:
		# Manejar el error de conversión a entero
		print("Error 401: return value is not int.")
		
	except Exception as e:
		# Manejar otros errores genéricos
		print("Error 402: Unexpected error convertirng the result:", e)
		
	#Si el resultado es un entero, es token.
	if isinstance(resultado, int): 
		#El númmero si es un entero.
		tokens = resultado
		continuar = True
		print("Access granted.")
		print("Your amount of available tokens is: ", tokens)
	else: 
		print("Message:", resultado)
		continuar = False

	#ACCIÓN#
	print("Performing action, processing...")
	if continuar is True and theApp.saldoParaAccion(tokens):
		resultado = theApp.getResult(content)
		print("Process completed.")
	else: 
		print(f"Message: Not enough tokens to perform {nodes.work} action.")
		resultado = 0
      
	#CHARGE TOKENS
	#Si se generó un resultado de AI entonces si hay que debitar el token correspondiente basado en la regla propia de la app.
	if resultado != 0:
		#sulkuGateway.debitTokens(access, nodes.work)
		sulkuPypi.debitTokens(access, nodes.work)
	else:
		"No tokens will be charged because no outcome was produced."
		
	return tokens, resultado