QuentinL52 commited on
Commit
78a40dc
·
verified ·
1 Parent(s): ef6a0ab

Update src/services/cv_router.py

Browse files
Files changed (1) hide show
  1. 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
- # Préparer les données pour l'insertion
31
- cv_data = cv.model_dump(exclude_unset=True)
32
-
33
- # Insérer dans MongoDB et récupérer l'ID
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
- cv = await CVModel.get(db, "cv", {"_id": cv_id})
 
 
 
 
 
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