Moibe commited on
Commit
67828a3
·
1 Parent(s): 97ce1fc

Customer as index to add tokens

Browse files
Files changed (3) hide show
  1. fireWhale.py +40 -1
  2. herramientas.py +16 -12
  3. main.py +8 -9
fireWhale.py CHANGED
@@ -123,4 +123,43 @@ def verificar_token(id_token):
123
  return uid # Retorna el UID del usuario si el token es válido
124
  except auth.InvalidIdTokenError as e:
125
  print(f"Token inválido: {e}")
126
- return None # Retorna None si el token es inválido
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
123
  return uid # Retorna el UID del usuario si el token es válido
124
  except auth.InvalidIdTokenError as e:
125
  print(f"Token inválido: {e}")
126
+ return None # Retorna None si el token es inválido
127
+
128
+ def encontrar_documento_por_cus(valor_cus):
129
+ """
130
+ Busca un documento en la colección 'usuario' donde el campo 'cus'
131
+ coincide con el valor_cus especificado.
132
+
133
+ Args:
134
+ valor_cus (str): El valor exacto del campo 'cus' a buscar.
135
+
136
+ Returns:
137
+ tuple: Una tupla (document_id, document_data) si se encuentra,
138
+ o (None, None) si no se encuentra o hay un error.
139
+ Retorna solo el primer documento encontrado si hay múltiples coincidencias.
140
+ """
141
+ print(f"\n--- Buscando documento en 'usuario' con cus: '{valor_cus}' ---")
142
+
143
+ try:
144
+ # Realizamos la consulta: filtra por documentos donde 'cus' sea igual a valor_cus
145
+ query_results = db.collection('usuario').where(
146
+ filter=firestore.FieldFilter('cus', '==', valor_cus)
147
+ ).limit(1).get() # Agregamos .limit(1) porque esperas un único documento
148
+
149
+ if not query_results:
150
+ print(f"❌ No se encontró ningún documento con 'cus' = '{valor_cus}'.")
151
+ return None, None
152
+
153
+ # Si se encuentra, query_results será una lista de instantáneas de documentos
154
+ # Tomamos el primer resultado (ya que usamos limit(1))
155
+ doc_snapshot = query_results[0]
156
+
157
+ doc_id = doc_snapshot.id
158
+ doc_data = doc_snapshot.to_dict()
159
+
160
+ print(f"✔️ Documento encontrado: ID='{doc_id}', Datos: {doc_data}")
161
+ return doc_id, doc_data
162
+
163
+ except Exception as e:
164
+ print(f"❌ Error al buscar documento por 'cus': {e}")
165
+ return None, None
herramientas.py CHANGED
@@ -23,7 +23,7 @@ def imprimeTime():
23
 
24
  return formatted_time
25
 
26
- def registrar_evento(event_type: str):
27
  """
28
  Guarda la fecha y hora actual junto con un tipo de evento
29
  en un archivo 'registro.txt' en la raíz del proyecto.
@@ -35,24 +35,28 @@ def registrar_evento(event_type: str):
35
  fecha = imprimeTime() # Utiliza tu función existente
36
 
37
  # 2. Definir el nombre del archivo de registro
38
- file_name = "registro.txt"
39
 
40
  # 3. Obtener la ruta completa al archivo en la raíz del proyecto
41
  # Esto asume que el script que llama a esta función está en la raíz.
42
- script_dir = os.path.dirname(os.path.abspath(__file__))
43
- registro_path = os.path.join(script_dir, file_name)
44
 
45
  # 4. Formatear la línea que se guardará en el archivo
46
  # Puedes elegir el formato que prefieras. Un buen formato sería CSV o algo legible.
47
  # Por ejemplo: "FECHA_HORA,TIPO_DE_EVENTO\n"
48
- log_line = f"{fecha},{event_type}\n"
49
 
50
- fireWhale.creaDato('usuarios', 'log', 'registro', log_line)
 
 
 
 
51
 
52
  # 5. Abrir el archivo en modo de añadir ('a') y escribir la línea
53
- try:
54
- with open(registro_path, 'a') as f:
55
- f.write(log_line)
56
- print(f"[{fecha}] Evento '{event_type}' registrado con éxito en '{registro_path}'")
57
- except Exception as e:
58
- print(f"Error al escribir en el archivo de registro '{registro_path}': {e}")
 
23
 
24
  return formatted_time
25
 
26
+ def registrar_evento(cus: str):
27
  """
28
  Guarda la fecha y hora actual junto con un tipo de evento
29
  en un archivo 'registro.txt' en la raíz del proyecto.
 
35
  fecha = imprimeTime() # Utiliza tu función existente
36
 
37
  # 2. Definir el nombre del archivo de registro
38
+ #file_name = "registro.txt"
39
 
40
  # 3. Obtener la ruta completa al archivo en la raíz del proyecto
41
  # Esto asume que el script que llama a esta función está en la raíz.
42
+ # script_dir = os.path.dirname(os.path.abspath(__file__))
43
+ # registro_path = os.path.join(script_dir, file_name)
44
 
45
  # 4. Formatear la línea que se guardará en el archivo
46
  # Puedes elegir el formato que prefieras. Un buen formato sería CSV o algo legible.
47
  # Por ejemplo: "FECHA_HORA,TIPO_DE_EVENTO\n"
48
+ #log_line = f"{fecha},{cus}\n"
49
 
50
+ resultado = fireWhale.encontrar_documento_por_cus(cus)
51
+ print("Ésto es el resultado de buscar el cus:")
52
+ print(resultado)
53
+
54
+ fireWhale.editaDato('usuarios', resultado, 'tokens', 182)
55
 
56
  # 5. Abrir el archivo en modo de añadir ('a') y escribir la línea
57
+ # try:
58
+ # with open(registro_path, 'a') as f:
59
+ # f.write(log_line)
60
+ # print(f"[{fecha}] Evento '{event_type}' registrado con éxito en '{registro_path}'")
61
+ # except Exception as e:
62
+ # print(f"Error al escribir en el archivo de registro '{registro_path}': {e}")
main.py CHANGED
@@ -34,8 +34,7 @@ async def webhook_received(request: Request, stripe_signature: str = Header(None
34
  )
35
  # print("Evento construido...")
36
  # print(event)
37
- # print("Evento impreso")
38
-
39
 
40
  except Exception as e:
41
  print("Excepción es: ", e)
@@ -45,20 +44,20 @@ async def webhook_received(request: Request, stripe_signature: str = Header(None
45
  print("Voy a imprimir el event type:")
46
  print(event_type)
47
 
48
- if event_type == 'charge.succeeded':
49
- print('charge succeed')
50
- herramientas.registrar_evento(event_type)
51
  print(event_data)
52
- print("Ready")
53
- #time.sleep(80)
54
  print(event_data['created'])
55
  print(event_data['id'])
56
  print(event_data['payment_intent'])
57
  print(event_data['payment_method'])
58
  print(event_data['receipt_url'])
 
 
 
 
59
 
60
- # autorizacion = sulkuPypi.authorize(19, 'picswap')
61
- # print("Autorización: ", autorizacion)
62
  else:
63
  print(f'unhandled event: {event_type}')
64
 
 
34
  )
35
  # print("Evento construido...")
36
  # print(event)
37
+ # print("Evento impreso")
 
38
 
39
  except Exception as e:
40
  print("Excepción es: ", e)
 
44
  print("Voy a imprimir el event type:")
45
  print(event_type)
46
 
47
+ if event_type == 'payment_intent.succeeded':
48
+ print('payment intent succeed')
 
49
  print(event_data)
50
+ print("Ready")
 
51
  print(event_data['created'])
52
  print(event_data['id'])
53
  print(event_data['payment_intent'])
54
  print(event_data['payment_method'])
55
  print(event_data['receipt_url'])
56
+ print("Customer:")
57
+ cus = event_data['customer']
58
+ print(cus)
59
+ herramientas.registrar_evento(cus)
60
 
 
 
61
  else:
62
  print(f'unhandled event: {event_type}')
63