add sending medical_card_id to person while creating
This commit is contained in:
@@ -22,9 +22,12 @@ class MedicalCardService(BaseService[models.MedicalCard, MedicalCardCreateIn, An
|
|||||||
LOCAL_PERSONAL_INFO_URL = 'http://localhost:8001'
|
LOCAL_PERSONAL_INFO_URL = 'http://localhost:8001'
|
||||||
self.PERSONAL_INFO_URL = os.environ.get('ASTRA-PERSONAL-INFORMATION') or LOCAL_PERSONAL_INFO_URL
|
self.PERSONAL_INFO_URL = os.environ.get('ASTRA-PERSONAL-INFORMATION') or LOCAL_PERSONAL_INFO_URL
|
||||||
|
|
||||||
def get_persons(self, searchstring: str) -> List[PersonOut]:
|
def search_persons(self, searchstring: str) -> List[PersonOut]:
|
||||||
try:
|
try:
|
||||||
response = httpx.get(f'{self.PERSONAL_INFO_URL}/persons/?full_name={searchstring}')
|
response = httpx.post(
|
||||||
|
f'{self.PERSONAL_INFO_URL}/persons/search',
|
||||||
|
json={"full_name": searchstring}
|
||||||
|
)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
except httpx.RequestError as exc:
|
except httpx.RequestError as exc:
|
||||||
print(f"Ошибка вызова {exc.request.url!r}.")
|
print(f"Ошибка вызова {exc.request.url!r}.")
|
||||||
@@ -52,7 +55,8 @@ class MedicalCardService(BaseService[models.MedicalCard, MedicalCardCreateIn, An
|
|||||||
if searchstring is None or searchstring == '':
|
if searchstring is None or searchstring == '':
|
||||||
raise HTTPException(status_code=409, detail='searchstring is required')
|
raise HTTPException(status_code=409, detail='searchstring is required')
|
||||||
|
|
||||||
persons = self.get_persons(searchstring)
|
persons = self.search_persons(searchstring)
|
||||||
|
|
||||||
person_ids = [person.id for person in persons]
|
person_ids = [person.id for person in persons]
|
||||||
|
|
||||||
if len(person_ids) < 1:
|
if len(person_ids) < 1:
|
||||||
@@ -99,3 +103,21 @@ class MedicalCardService(BaseService[models.MedicalCard, MedicalCardCreateIn, An
|
|||||||
self.db_session.commit()
|
self.db_session.commit()
|
||||||
|
|
||||||
return mc_obj
|
return mc_obj
|
||||||
|
|
||||||
|
def create(self, obj: MedicalCardCreateIn):
|
||||||
|
medical_card = super(MedicalCardService, self).create(obj)
|
||||||
|
person_id = obj.person_id
|
||||||
|
print('====' * 20)
|
||||||
|
print(person_id)
|
||||||
|
print(medical_card.id)
|
||||||
|
try:
|
||||||
|
response = httpx.patch(f'{self.PERSONAL_INFO_URL}/persons/{person_id}', json={"medical_card_id": str(medical_card.id)})
|
||||||
|
response.raise_for_status()
|
||||||
|
except httpx.RequestError as exc:
|
||||||
|
print(f"Ошибка вызова {exc.request.url!r}.")
|
||||||
|
raise HTTPException(status_code=500, detail=f"Ошибка вызова {exc.request.url!r}.")
|
||||||
|
except httpx.HTTPStatusError as exc:
|
||||||
|
print(f"Ошибка {exc.response.status_code} при запросе {exc.request.url!r}.")
|
||||||
|
raise HTTPException(status_code=exc.response.status_code, detail=f"Ошибка вызова {exc.request.url!r}.")
|
||||||
|
|
||||||
|
return medical_card
|
||||||
|
|||||||
Reference in New Issue
Block a user