Moibe commited on
Commit
eda7ff7
·
1 Parent(s): 7d01e27

Splashmixai accesible

Browse files
Files changed (5) hide show
  1. .gitignore +2 -0
  2. autenticacion.py +2 -0
  3. config_creator.py +4 -8
  4. fireWhale.py +26 -3
  5. herramientas.py +7 -2
.gitignore CHANGED
@@ -5,3 +5,5 @@ bridges.py
5
  config.json
6
  config_dev.json
7
  config_prod.json
 
 
 
5
  config.json
6
  config_dev.json
7
  config_prod.json
8
+ splashmix-ai.json
9
+ .env
autenticacion.py CHANGED
@@ -26,6 +26,7 @@ def defineAmbiente(env):
26
  llave = os.getenv("STRIPE_KEY_PROD") #Acceso a HF
27
  webhook = os.getenv("STRIPE_WEBHOOK_SECRET_PROD")
28
  config_creator.creaConfigFirestore('configuracion_prod') #La secret var de HF respecto a prod.
 
29
  ga4Key = os.getenv("GA4_SECRET_PROD")
30
  ga4ID = os.getenv("GA4_ID_PROD")
31
  else: #if dev
@@ -33,6 +34,7 @@ def defineAmbiente(env):
33
  llave = os.getenv("STRIPE_KEY_SANDBOX") #Acceso a HF
34
  webhook = os.getenv("STRIPE_WEBHOOK_SECRET_SANDBOX")
35
  config_creator.creaConfigFirestore('configuracion_dev') #La secret var de HF respecto a dev.
 
36
  ga4Key = os.getenv("GA4_SECRET_DEV")
37
  ga4ID = os.getenv("GA4_ID_DEV")
38
 
 
26
  llave = os.getenv("STRIPE_KEY_PROD") #Acceso a HF
27
  webhook = os.getenv("STRIPE_WEBHOOK_SECRET_PROD")
28
  config_creator.creaConfigFirestore('configuracion_prod') #La secret var de HF respecto a prod.
29
+ config_creator.creaConfigFirestore('splashmixai_firestore_json', 'archivos/splashmix-ai.json') #Firestore de splashmix-ai
30
  ga4Key = os.getenv("GA4_SECRET_PROD")
31
  ga4ID = os.getenv("GA4_ID_PROD")
32
  else: #if dev
 
34
  llave = os.getenv("STRIPE_KEY_SANDBOX") #Acceso a HF
35
  webhook = os.getenv("STRIPE_WEBHOOK_SECRET_SANDBOX")
36
  config_creator.creaConfigFirestore('configuracion_dev') #La secret var de HF respecto a dev.
37
+ config_creator.creaConfigFirestore('splashmixai_firestore_json', 'archivos/splashmix-ai.json') #Firestore de splashmix-ai
38
  ga4Key = os.getenv("GA4_SECRET_DEV")
39
  ga4ID = os.getenv("GA4_ID_DEV")
40
 
config_creator.py CHANGED
@@ -1,28 +1,24 @@
1
  import os
2
  import json
3
 
4
- def creaConfigFirestore(configuracion):
5
 
6
  # Paso 1: Obtener la variable de entorno
7
  firestore_config_str = os.getenv(configuracion)
8
 
9
  if firestore_config_str is None:
10
- print("Error: La variable de entorno 'configuracion' no está definida.")
11
  else:
12
  try:
13
  # Paso 2: Convertir el string JSON en un diccionario de Python
14
  firestore_config_dict = json.loads(firestore_config_str)
15
 
16
- # Paso 3: Definir la ruta COMPLETA del archivo de salida
17
- # Esto indica que se debe guardar en la subcarpeta 'code/archivos'
18
- ruta_archivo = "archivos/config.json"
19
-
20
- # Paso 4: Asegurarse de que la carpeta de destino exista
21
  # os.makedirs() creará la carpeta y sus padres si no existen
22
  # El parámetro 'exist_ok=True' evita que falle si la carpeta ya existe
23
  os.makedirs(os.path.dirname(ruta_archivo), exist_ok=True)
24
 
25
- # Paso 5: Escribir el diccionario en el archivo en la ruta especificada
26
  with open(ruta_archivo, 'w') as archivo_json:
27
  json.dump(firestore_config_dict, archivo_json, indent=4)
28
 
 
1
  import os
2
  import json
3
 
4
+ def creaConfigFirestore(configuracion, ruta_archivo="archivos/config.json"):
5
 
6
  # Paso 1: Obtener la variable de entorno
7
  firestore_config_str = os.getenv(configuracion)
8
 
9
  if firestore_config_str is None:
10
+ print(f"Error: La variable de entorno '{configuracion}' no está definida.")
11
  else:
12
  try:
13
  # Paso 2: Convertir el string JSON en un diccionario de Python
14
  firestore_config_dict = json.loads(firestore_config_str)
15
 
16
+ # Paso 3: Asegurarse de que la carpeta de destino exista
 
 
 
 
17
  # os.makedirs() creará la carpeta y sus padres si no existen
18
  # El parámetro 'exist_ok=True' evita que falle si la carpeta ya existe
19
  os.makedirs(os.path.dirname(ruta_archivo), exist_ok=True)
20
 
21
+ # Paso 4: Escribir el diccionario en el archivo en la ruta especificada
22
  with open(ruta_archivo, 'w') as archivo_json:
23
  json.dump(firestore_config_dict, archivo_json, indent=4)
24
 
fireWhale.py CHANGED
@@ -3,12 +3,16 @@ from firebase_admin import auth
3
  from firebase_admin import firestore
4
  from firebase_admin import credentials
5
 
6
- # Use the application default credentials.
7
  cred = credentials.Certificate('archivos/config.json')
8
  firebase_admin.initialize_app(cred)
9
-
10
  db = firestore.client()
11
 
 
 
 
 
 
12
  def obtenDatosUIDFirebase(uid):
13
  """
14
  Verifica si un UID existe en Firebase Authentication.
@@ -185,4 +189,23 @@ def incrementar_campo_numerico(collection_name, document_id, field_name, amount=
185
  )
186
  print(f"✔️ Campo '{field_name}' en el documento '{document_id}' actualizado/creado e incrementado en {amount}.")
187
  except Exception as e:
188
- print(f"❌ Error al operar en el campo '{field_name}' del documento '{document_id}': {e}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  from firebase_admin import firestore
4
  from firebase_admin import credentials
5
 
6
+ # Configuración para el primer proyecto (original)
7
  cred = credentials.Certificate('archivos/config.json')
8
  firebase_admin.initialize_app(cred)
 
9
  db = firestore.client()
10
 
11
+ # Configuración para el segundo proyecto (splashmix-ai)
12
+ cred_splashmix = credentials.Certificate('archivos/splashmix-ai.json')
13
+ app_splashmix = firebase_admin.initialize_app(cred_splashmix, name='splashmix')
14
+ db_splashmix = firestore.client(app_splashmix)
15
+
16
  def obtenDatosUIDFirebase(uid):
17
  """
18
  Verifica si un UID existe en Firebase Authentication.
 
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}")
193
+
194
+ def probar_conexion_splashmix():
195
+ """
196
+ Prueba la conexión al Firestore de splashmix-ai intentando listar las colecciones.
197
+
198
+ Returns:
199
+ bool: True si la conexión es exitosa, False en caso contrario.
200
+ """
201
+ try:
202
+ # Intentamos obtener una referencia de colección para verificar la conexión
203
+ collections = db_splashmix.collections()
204
+ collections_list = [col.id for col in collections]
205
+
206
+ print(f"✔️ Conexión exitosa a Firestore de splashmix-ai!")
207
+ print(f" Colecciones disponibles: {collections_list if collections_list else 'No hay colecciones aún o sin permisos'}")
208
+ return True
209
+ except Exception as e:
210
+ print(f"❌ Error al conectar con Firestore de splashmix-ai: {e}")
211
+ return False
herramientas.py CHANGED
@@ -35,9 +35,14 @@ def registrar_evento(cus: str, firebase_user: str, tokens: int, sitio: str = Non
35
 
36
  print("El sitio recibido es: ", sitio)
37
 
38
- if sitio == 'crea_imagen':
39
  print("llegué al otro firestore")
40
- # Aquí irá la lógica para el otro firestore
 
 
 
 
 
41
  else:
42
  fireWhale.incrementar_campo_numerico('usuarios', firebase_user, 'tokens', amount=tokens)
43
  fireWhale.editaDato('usuarios', firebase_user, 'compro', True)
 
35
 
36
  print("El sitio recibido es: ", sitio)
37
 
38
+ if sitio == 'crea-imagen':
39
  print("llegué al otro firestore")
40
+ # Probar conexión al Firestore de splashmix-ai
41
+ conexion_exitosa = fireWhale.probar_conexion_splashmix()
42
+ if conexion_exitosa:
43
+ print("✔️ Prueba de conexión exitosa!")
44
+ else:
45
+ print("❌ Fallo en la prueba de conexión")
46
  else:
47
  fireWhale.incrementar_campo_numerico('usuarios', firebase_user, 'tokens', amount=tokens)
48
  fireWhale.editaDato('usuarios', firebase_user, 'compro', True)