Moibe commited on
Commit
e3c2c56
·
1 Parent(s): ac5c2da

Print Event and wait 60

Browse files
Files changed (3) hide show
  1. fireWhale.py +28 -1
  2. herramientas.py +3 -1
  3. main.py +4 -3
fireWhale.py CHANGED
@@ -162,4 +162,31 @@ def encontrar_documento_por_cus(valor_cus):
162
 
163
  except Exception as e:
164
  print(f"❌ Error al buscar documento por 'cus': {e}")
165
- return None, None
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
162
 
163
  except Exception as e:
164
  print(f"❌ Error al buscar documento por 'cus': {e}")
165
+ return None, None
166
+
167
+ def incrementar_campo_numerico(collection_name, document_id, field_name, amount=1):
168
+ """
169
+ Incrementa un campo numérico en un documento de Firestore de forma atómica.
170
+ Si el documento no existe, lo crea e inicializa el campo con el 'amount'.
171
+ Si el campo no existe en un documento existente, lo inicializa y aplica el incremento.
172
+
173
+ Args:
174
+ collection_name (str): El nombre de la colección.
175
+ document_id (str): El ID del documento.
176
+ field_name (str): El nombre del campo numérico a incrementar.
177
+ amount (int/float): La cantidad por la cual incrementar (puede ser negativo para decrementar).
178
+ """
179
+ doc_ref = db.collection(collection_name).document(document_id)
180
+
181
+ try:
182
+ # Usamos .set() con merge=True para comportamiento de "upsert".
183
+ # Si el documento no existe, lo crea.
184
+ # Si el campo no existe, lo crea e inicializa con 'amount'.
185
+ # Si el campo ya existe, lo incrementa con 'amount'.
186
+ doc_ref.set(
187
+ {field_name: firestore.Increment(amount)},
188
+ merge=True # Esta es la clave para que se cree si no existe y no sobrescriba otros campos
189
+ )
190
+ print(f"✔️ Campo '{field_name}' en el documento '{document_id}' actualizado/creado e incrementado en {amount}.")
191
+ except Exception as e:
192
+ print(f"❌ Error al operar en el campo '{field_name}' del documento '{document_id}': {e}")
herramientas.py CHANGED
@@ -53,4 +53,6 @@ def registrar_evento(cus: str, tokens: int):
53
  resultado = fireWhale.encontrar_documento_por_cus(cus)
54
  # print("Ésto es el resultado de buscar el cus:")
55
  # print(resultado)
56
- fireWhale.editaDato('usuarios', resultado, 'tokens', tokens)
 
 
 
53
  resultado = fireWhale.encontrar_documento_por_cus(cus)
54
  # print("Ésto es el resultado de buscar el cus:")
55
  # print(resultado)
56
+ fireWhale.editaDato('usuarios', resultado, 'tokens', tokens)
57
+
58
+ fireWhale.incrementar_campo_numerico('usuarios', resultado, tokens, amount=tokens)
main.py CHANGED
@@ -32,9 +32,10 @@ async def webhook_received(request: Request, stripe_signature: str = Header(None
32
  sig_header=stripe_signature,
33
  secret=webhook_secret
34
  )
35
- # print("Evento construido...")
36
- # print(event)
37
- # print("Evento impreso")
 
38
 
39
  except Exception as e:
40
  print("Excepción es: ", e)
 
32
  sig_header=stripe_signature,
33
  secret=webhook_secret
34
  )
35
+ print("Evento construido...")
36
+ print(event)
37
+ print("Evento impreso")
38
+ time.sleep(60)
39
 
40
  except Exception as e:
41
  print("Excepción es: ", e)