From 80badc38db54ae2af82a01396cd04caab2adfb4e Mon Sep 17 00:00:00 2001 From: Miwory Date: Wed, 15 Apr 2026 13:50:19 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 2 +- src/apps/download/v1/router.py | 4 +++- src/apps/users/v1/router.py | 4 ++-- src/clients/vitacore/schema.py | 6 ++++++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 4e65e16..8f03353 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "HospitalAssistantBackend" -version = "1.5.0" +version = "1.5.1" description = "Backend for Hospital Assistant" readme = "README.md" requires-python = ">=3.13,<3.14" diff --git a/src/apps/download/v1/router.py b/src/apps/download/v1/router.py index 34fddb6..99bc037 100644 --- a/src/apps/download/v1/router.py +++ b/src/apps/download/v1/router.py @@ -1,3 +1,4 @@ +from base64 import b64decode from logging import getLogger from fastapi import APIRouter, Response @@ -23,9 +24,10 @@ async def download_file(token: str): raise e.NotFoundException data = loads(file_data) + file_bytes = b64decode(data['data']) return Response( - content=data['data'], + content=file_bytes, media_type=data['content_type'], headers={ 'Content-Disposition': f'attachment; filename="{data["filename"]}"' diff --git a/src/apps/users/v1/router.py b/src/apps/users/v1/router.py index 3a1823d..5ec5fa6 100644 --- a/src/apps/users/v1/router.py +++ b/src/apps/users/v1/router.py @@ -126,7 +126,7 @@ async def get_vaccs_report_download( { 'filename': filename, 'content_type': 'application/msword', - 'data': file_bytes, + 'data': base64.b64encode(file_bytes).decode('utf-8'), } ), ex=600, @@ -312,7 +312,7 @@ async def get_aemd_file_download( { 'filename': filename, 'content_type': 'application/pdf', - 'data': pdf_bytes, + 'data': base64.b64encode(pdf_bytes).decode('utf-8'), } ), ex=600, diff --git a/src/clients/vitacore/schema.py b/src/clients/vitacore/schema.py index bacee7f..2003e6d 100644 --- a/src/clients/vitacore/schema.py +++ b/src/clients/vitacore/schema.py @@ -634,10 +634,16 @@ class ProlongationModel(BaseModel): title='Дата продления до', examples=['2020-10-25'] ) Post: str = Field( + default='Неизвестный врач', title='Врач', examples=['Ахсанова Р.М. (Врач общей практики (семейный врач))'], ) + @field_validator('Post', mode='before') + @classmethod + def set_default_post(cls, v: str | None) -> str: + return v or 'Неизвестный врач' + class PatientELNModel(BaseModel): PatientSNILS: str | None = Field(