PoCInnovation / main.py
pierrelissope
fix: fixed job issues
b665879
raw
history blame
2.44 kB
import time
import base64
from pydantic import BaseModel
from fastapi import FastAPI, APIRouter
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from starlette.responses import FileResponse
# Création de l'application FastAPI
app = FastAPI()
# Configuration du CORS
origins = [
"http://localhost:7860", # Exemple d'origine (ajoutez vos origines ici)
"https://example.com",
]
app.add_middleware(
CORSMiddleware,
allow_origins=origins, # Liste des origines autorisées
allow_credentials=True,
allow_methods=["*"], # Autorise toutes les méthodes (GET, POST, etc.)
allow_headers=["*"], # Autorise tous les en-têtes
)
# Modèles Pydantic
class ImageData(BaseModel):
image: str
class ImagesData(BaseModel):
idCard: str
profileImage: str
# Déclaration d'un routeur pour la gestion des fichiers statiques et des autres routes
router = APIRouter()
# Routes pour les fichiers statiques
@router.get("/")
async def index() -> FileResponse:
return FileResponse(path="front/dist/index.html", media_type="text/html")
@router.get("/verification")
async def verif() -> FileResponse:
return FileResponse(path="front/dist/index.html", media_type="text/html")
# Montée des fichiers statiques à la racine "/"
app.include_router(router)
app.mount("/", StaticFiles(directory="front/dist", html=True), name="static")
# Route pour l'upload d'image en base64
@app.post("/uploadpdf")
async def upload_pdf(image_data: ImageData):
# Extraire le contenu Base64
header, encoded = image_data.image.split(',', 1) # Séparer le header des données
binary_data = base64.b64decode(encoded) # Décoder les données
# Simulation du traitement avec un délai
time.sleep(20)
return {"message": "Image reçue et sauvegardée"}
# Route pour l'upload d'ID et d'image de profil
@app.post("/uploadids")
async def upload_ids(images_data: ImagesData):
# Traiter la carte d'identité
header, encoded = images_data.idCard.split(',', 1) # Séparer le header des données
id_card_binary_data = base64.b64decode(encoded)
# Traiter l'image de profil
header, encoded = images_data.profileImage.split(',', 1) # Séparer le header des données
profile_image_binary_data = base64.b64decode(encoded)
# Simulation du traitement avec un délai
time.sleep(20)
return {"message": "Images reçues et sauvegardées"}