add person id

This commit is contained in:
kandrusyak
2023-08-14 19:58:25 +03:00
parent a31d3bdc6e
commit 23baa240f5
2 changed files with 21 additions and 7 deletions

View File

@@ -27,6 +27,11 @@ async def get_medical_card(
) -> Optional[MedicalCardDetailOut]:
return medical_cards_service.get(medical_card_id)
@router.get('/person/{person_id}', response_model=MedicalCardDetailOut)
async def get_medical_card_by_person(
person_id: UUID4, medical_cards_service: MedicalCardService = Depends(get_medical_cards_service)
) -> Optional[MedicalCardDetailOut]:
return medical_cards_service.get_by_person(person_id)
@router.post('/', status_code=201, response_model=MedicalCardShortOut)
async def create_medical_card(
medical_card: MedicalCardCreateIn, medical_cards_service: MedicalCardService = Depends(get_medical_cards_service)

View File

@@ -77,6 +77,16 @@ class MedicalCardService(BaseService[models.MedicalCard, MedicalCardCreateIn, An
return medical_card
def get_by_person(self, id: UUID4) -> Optional[MedicalCardDetailOut]:
medical_card_obj: Optional[models.MedicalCard] = self.db_session.get(self.model, {"person_id": id})
if medical_card_obj is None:
raise HTTPException(status_code=404, detail=f'Медкарта {id} не найдена')
medical_card = MedicalCardDetailOut.from_orm(medical_card_obj)
medical_card.person = self.get_person(medical_card_obj.person_id)
return medical_card
def update(self, id: UUID4, mc_request: MedicalCardUpdateIn) -> Optional[MedicalCardOut]:
mc_obj = self.db_session.get(self.model, id)
if mc_obj is None:
@@ -88,4 +98,3 @@ class MedicalCardService(BaseService[models.MedicalCard, MedicalCardCreateIn, An
self.db_session.commit()
return mc_obj