Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
|
@@ -10,7 +10,7 @@ from datetime import datetime
|
|
| 10 |
from flask import Flask, request, jsonify, Response, session
|
| 11 |
from flask_cors import CORS
|
| 12 |
import baserow_storage # Assurez-vous que ceci est présent
|
| 13 |
-
|
| 14 |
from flask_socketio import SocketIO
|
| 15 |
|
| 16 |
# NOUVEL IMPORT POUR LA GESTION DU TERMINAL
|
|
@@ -308,54 +308,16 @@ def read_root():
|
|
| 308 |
# Statut de service non disponible (503) avec le message d'erreur
|
| 309 |
return jsonify({"detail": "Baserow service unavailable (Health Check failed)."}), 503
|
| 310 |
|
| 311 |
-
#
|
| 312 |
-
|
| 313 |
-
|
| 314 |
-
|
| 315 |
-
|
| 316 |
-
|
| 317 |
-
|
| 318 |
-
"""
|
| 319 |
-
Endpoint API pour la validation d'email en temps réel.
|
| 320 |
-
L'authentification se fait via la clé API (dans 'api_key' ou 'X-API-Key').
|
| 321 |
-
L'email est lu depuis le paramètre d'URL 'email'.
|
| 322 |
-
"""
|
| 323 |
-
email_to_validate = request.args.get('email')
|
| 324 |
-
|
| 325 |
-
# 1. Vérification de la présence de l'email
|
| 326 |
-
if not email_to_validate:
|
| 327 |
-
return jsonify({
|
| 328 |
-
"status": "Error",
|
| 329 |
-
"message": "Le paramètre 'email' est manquant dans l'URL.",
|
| 330 |
-
"code": "EMAIL_PARAM_MISSING"
|
| 331 |
-
}), 400
|
| 332 |
-
|
| 333 |
-
# 2. Validation d'appel au service externe (À REMPLACER par votre code réel)
|
| 334 |
-
|
| 335 |
-
# Placeholder pour un service de vérification d'email en temps réel
|
| 336 |
-
# Assurez-vous d'implémenter ici la logique d'appel à l'API de validation
|
| 337 |
-
# (ex: ZeroBounce, MailboxValidator, etc.) en utilisant la librairie 'requests'.
|
| 338 |
|
| 339 |
-
|
| 340 |
-
|
| 341 |
-
|
| 342 |
-
#
|
| 343 |
-
|
| 344 |
-
if re.match(r"[^@]+@[^@]+\.[^@]+", email_to_validate):
|
| 345 |
-
is_valid = True
|
| 346 |
-
message = "Le format de l'email est valide (Validation de base). Intégrez ici votre API de validation en temps réel."
|
| 347 |
-
else:
|
| 348 |
-
is_valid = False
|
| 349 |
-
message = "Format de l'email invalide."
|
| 350 |
-
# --- FIN DU PLACEHOLDER SIMPLE ---
|
| 351 |
-
|
| 352 |
-
# 3. Réponse API
|
| 353 |
-
return jsonify({
|
| 354 |
-
"status": "Success" if is_valid else "Error",
|
| 355 |
-
"message": message,
|
| 356 |
-
"email": email_to_validate,
|
| 357 |
-
"is_valid": is_valid,
|
| 358 |
-
# Optionnel: l'ID de l'utilisateur qui fait la requête
|
| 359 |
-
"client_user_id": client_user.get('user_id')
|
| 360 |
-
}), 200 if is_valid else 400
|
| 361 |
-
|
|
|
|
| 10 |
from flask import Flask, request, jsonify, Response, session
|
| 11 |
from flask_cors import CORS
|
| 12 |
import baserow_storage # Assurez-vous que ceci est présent
|
| 13 |
+
import shutil
|
| 14 |
from flask_socketio import SocketIO
|
| 15 |
|
| 16 |
# NOUVEL IMPORT POUR LA GESTION DU TERMINAL
|
|
|
|
| 308 |
# Statut de service non disponible (503) avec le message d'erreur
|
| 309 |
return jsonify({"detail": "Baserow service unavailable (Health Check failed)."}), 503
|
| 310 |
|
| 311 |
+
# Fonction de nettoyage des fichiers temporaires (utilisée à l'arrêt/redémarrage, etc.)
|
| 312 |
+
@app.teardown_appcontext
|
| 313 |
+
def shutdown_session(exception=None):
|
| 314 |
+
"""Supprime les dossiers de déploiement temporaires après la fin de la session, ou lors du nettoyage."""
|
| 315 |
+
# NOTE: Cette approche est simplifiée. Pour la production, vous voudriez
|
| 316 |
+
# une tâche en arrière-plan (cron job) pour nettoyer périodiquement les
|
| 317 |
+
# vieux dossiers pour éviter les fuites de mémoire.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 318 |
|
| 319 |
+
# Pour l'instant, on se contente de vider le dossier 'temp_uploads'
|
| 320 |
+
# Cela devrait être exécuté uniquement si on est sûr que l'application s'arrête.
|
| 321 |
+
# Dans un environnement de développement, on pourrait le faire au démarrage,
|
| 322 |
+
# mais ce n'est pas fiable en production (Gunicorn/multi-worker).
|
| 323 |
+
pass # On laisse la gestion du nettoyage à une tâche externe ou un redémarrage.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|