From fa83caf49dc4fed6abcd019f6f02aae402ce700c Mon Sep 17 00:00:00 2001 From: Miwory Date: Mon, 29 Sep 2025 08:45:04 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20getSpecs=20=D1=8D=D0=BD=D0=B4=D0=BF=D0=BE=D0=B8=D0=BD?= =?UTF-8?q?=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apps/users/v1/router.py | 7 +++++-- src/clients/vitacore/api.py | 10 ++++++++++ src/clients/vitacore/schema.py | 14 ++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/apps/users/v1/router.py b/src/apps/users/v1/router.py index e79af46..86a4a29 100644 --- a/src/apps/users/v1/router.py +++ b/src/apps/users/v1/router.py @@ -47,9 +47,12 @@ async def get_workers(departmentId: str): return await c.vitacore_api.getWorkers(departmentId) -@router.get('/getSpecs') +@router.get('/getSpecs', response_model=s.SpecsV021Model) async def get_specs(): - return mock.specs + """ + Get list of specialties. + """ + return await c.vitacore_api.getSpecsV021() @router.post('/measurement', status_code=status.HTTP_202_ACCEPTED) diff --git a/src/clients/vitacore/api.py b/src/clients/vitacore/api.py index 08e4502..e74cb18 100644 --- a/src/clients/vitacore/api.py +++ b/src/clients/vitacore/api.py @@ -50,3 +50,13 @@ class VITACORE_API(AsyncClient): case _: self.logger.error(req.json()) raise e.UnknownException + + async def getSpecsV021(self): + req = await self.get('/getSpecsV021') + + match req.status_code: + case st.HTTP_200_OK: + return s.SpecsV021Model.model_validate(req.json()) + case _: + self.logger.error(req.json()) + raise e.UnknownException diff --git a/src/clients/vitacore/schema.py b/src/clients/vitacore/schema.py index a397108..ffc8b94 100644 --- a/src/clients/vitacore/schema.py +++ b/src/clients/vitacore/schema.py @@ -174,3 +174,17 @@ class WorkersModel(BaseModel): middleName: str = Field(title='Отчество', examples=['Михайлович']) birthDate: datetime = Field(title='Дата рождения', examples=['30.05.1961']) positions: list[WorkersPositionModel] + + +class SpecialityV021Model(BaseModel): + SpecialityID: str = Field( + title='Код спциальности по справочнику V021', examples=['1'] + ) + SpecialityName: str = Field( + title='Наимнование спциальности по справочнику V021', + examples=['Авиационная и космическая медицина'], + ) + + +class SpecsV021Model(BaseModel): + SpecialitiesV021: list[SpecialityV021Model]