Spaces:
Sleeping
Sleeping
Update src/services/cv_router.py
Browse files- src/services/cv_router.py +11 -18
src/services/cv_router.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
from fastapi import APIRouter, Depends, HTTPException
|
| 2 |
from motor.motor_asyncio import AsyncIOMotorDatabase
|
| 3 |
from src.core.database import mongo_db
|
| 4 |
from src.models.mongo.cv_model import CVModel
|
|
@@ -27,26 +27,19 @@ class CVResponse(BaseModel):
|
|
| 27 |
|
| 28 |
@router.post("/cvs", response_model=CVResponse)
|
| 29 |
async def create_cv(cv: CVCreate, db: AsyncIOMotorDatabase = Depends(lambda: mongo_db)):
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
cv_id = await CVModel.create(db, "cv", cv_data)
|
| 35 |
-
|
| 36 |
-
# Créer la réponse avec l'ID
|
| 37 |
-
response_data = {
|
| 38 |
-
"id": cv_id,
|
| 39 |
-
"user_id": cv.user_id,
|
| 40 |
-
"parsed_data": cv.parsed_data,
|
| 41 |
-
"raw_text": cv.raw_text,
|
| 42 |
-
"upload_date": cv.upload_date
|
| 43 |
-
}
|
| 44 |
-
|
| 45 |
-
return CVResponse(**response_data)
|
| 46 |
|
| 47 |
@router.get("/cvs/{cv_id}", response_model=CVResponse)
|
| 48 |
async def get_cv_by_id(cv_id: str, db: AsyncIOMotorDatabase = Depends(lambda: mongo_db)):
|
| 49 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
if cv is None:
|
| 51 |
raise HTTPException(status_code=404, detail="CV not found")
|
| 52 |
return cv
|
|
|
|
| 1 |
+
from fastapi import APIRouter, Depends, HTTPException, status
|
| 2 |
from motor.motor_asyncio import AsyncIOMotorDatabase
|
| 3 |
from src.core.database import mongo_db
|
| 4 |
from src.models.mongo.cv_model import CVModel
|
|
|
|
| 27 |
|
| 28 |
@router.post("/cvs", response_model=CVResponse)
|
| 29 |
async def create_cv(cv: CVCreate, db: AsyncIOMotorDatabase = Depends(lambda: mongo_db)):
|
| 30 |
+
cv_entry = CVModel(**cv.model_dump(by_alias=True))
|
| 31 |
+
cv_id = await CVModel.create(db, CVModel.collection_name, cv_entry.model_dump(exclude_unset=True))
|
| 32 |
+
cv_entry.id = cv_id
|
| 33 |
+
return cv_entry
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
|
| 35 |
@router.get("/cvs/{cv_id}", response_model=CVResponse)
|
| 36 |
async def get_cv_by_id(cv_id: str, db: AsyncIOMotorDatabase = Depends(lambda: mongo_db)):
|
| 37 |
+
# Vérifie si l'ID est un ObjectId valide
|
| 38 |
+
if not ObjectId.is_valid(cv_id):
|
| 39 |
+
raise HTTPException(status_code=400, detail="ID de CV invalide")
|
| 40 |
+
|
| 41 |
+
# MODIFICATION : Convertit cv_id en ObjectId avant d'interroger la base de données
|
| 42 |
+
cv = await CVModel.get(db, CVModel.collection_name, {"_id": ObjectId(cv_id)})
|
| 43 |
if cv is None:
|
| 44 |
raise HTTPException(status_code=404, detail="CV not found")
|
| 45 |
return cv
|