From 0ff82c1304881c6ec5efc20f2a6b75e2b12dfe5d Mon Sep 17 00:00:00 2001 From: Seva P Date: Fri, 8 May 2026 22:43:49 +0300 Subject: [PATCH 1/2] added route --- modal_backend/routes/services.py | 15 +++++++++++++++ modal_backend/utils/services.py | 8 +++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/modal_backend/routes/services.py b/modal_backend/routes/services.py index 291f914..4c09a25 100644 --- a/modal_backend/routes/services.py +++ b/modal_backend/routes/services.py @@ -38,6 +38,21 @@ async def create_service( return ServiceGet.model_validate(new_service) +@service.put("/{id}", response_model=ServiceGet) +async def update_service( + id: int, + service_info: ServicePost, + user=Depends(UnionAuth(scopes=["modal.service.update"])), +) -> ServiceGet: + """ + Обновляет сервис по `id`. + + Scopes: `["modal.service.update"]` + """ + updated = await ServiceManager.update_service(db, id, service_info) + return ServiceGet.model_validate(updated) + + @service.delete("/{id}", response_model=StatusResponseModel) async def delete_service(id: int, user=Depends(UnionAuth(scopes=["modal.service.delete"]))) -> StatusResponseModel: """ diff --git a/modal_backend/utils/services.py b/modal_backend/utils/services.py index f14a8ea..d84713f 100644 --- a/modal_backend/utils/services.py +++ b/modal_backend/utils/services.py @@ -3,7 +3,7 @@ from modal_backend.exceptions import AlreadyExists, ObjectNotFound from modal_backend.models.db import Group, ModalStatus, Note, NoteType, Service from modal_backend.schemas.base import StatusResponseModel -from modal_backend.schemas.models import GroupPost, NoteTypePost, NotificationPost +from modal_backend.schemas.models import GroupPost, NoteTypePost, NotificationPost, ServicePost class NoteService: @@ -78,6 +78,12 @@ async def delete_service(cls, db: Session, id: int): status="Success", message="Service has been successfully deleted", ru="Сервис успешно удален" ) + @classmethod + async def update_service(cls, db: Session, id: int, service_info: ServicePost): + Service.get(session=db.session, id=id) + updated_service = Service.update(id, session=db.session, **service_info.model_dump()) + return updated_service + class GroupService: """ From b3153d3fd3b97a766b2d37f1d935f76522b8fea1 Mon Sep 17 00:00:00 2001 From: petrCher <88943157+petrCher@users.noreply.github.com> Date: Sat, 9 May 2026 00:14:35 +0300 Subject: [PATCH 2/2] patch logic --- modal_backend/routes/services.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modal_backend/routes/services.py b/modal_backend/routes/services.py index 4c09a25..7fafed0 100644 --- a/modal_backend/routes/services.py +++ b/modal_backend/routes/services.py @@ -38,7 +38,7 @@ async def create_service( return ServiceGet.model_validate(new_service) -@service.put("/{id}", response_model=ServiceGet) +@service.patch("/{id}", response_model=ServiceGet) async def update_service( id: int, service_info: ServicePost,