Skip to content

Commit f64aeda

Browse files
authored
Merge pull request #23 from profcomff/create-update-service/{id}-route
added route
2 parents a5957ba + b3153d3 commit f64aeda

2 files changed

Lines changed: 22 additions & 1 deletion

File tree

modal_backend/routes/services.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,21 @@ async def create_service(
3838
return ServiceGet.model_validate(new_service)
3939

4040

41+
@service.patch("/{id}", response_model=ServiceGet)
42+
async def update_service(
43+
id: int,
44+
service_info: ServicePost,
45+
user=Depends(UnionAuth(scopes=["modal.service.update"])),
46+
) -> ServiceGet:
47+
"""
48+
Обновляет сервис по `id`.
49+
50+
Scopes: `["modal.service.update"]`
51+
"""
52+
updated = await ServiceManager.update_service(db, id, service_info)
53+
return ServiceGet.model_validate(updated)
54+
55+
4156
@service.delete("/{id}", response_model=StatusResponseModel)
4257
async def delete_service(id: int, user=Depends(UnionAuth(scopes=["modal.service.delete"]))) -> StatusResponseModel:
4358
"""

modal_backend/utils/services.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from modal_backend.exceptions import AlreadyExists, ObjectNotFound
44
from modal_backend.models.db import Group, ModalStatus, Note, NoteType, Service
55
from modal_backend.schemas.base import StatusResponseModel
6-
from modal_backend.schemas.models import GroupPost, NoteTypePost, NotificationPost
6+
from modal_backend.schemas.models import GroupPost, NoteTypePost, NotificationPost, ServicePost
77

88

99
class NoteService:
@@ -78,6 +78,12 @@ async def delete_service(cls, db: Session, id: int):
7878
status="Success", message="Service has been successfully deleted", ru="Сервис успешно удален"
7979
)
8080

81+
@classmethod
82+
async def update_service(cls, db: Session, id: int, service_info: ServicePost):
83+
Service.get(session=db.session, id=id)
84+
updated_service = Service.update(id, session=db.session, **service_info.model_dump())
85+
return updated_service
86+
8187

8288
class GroupService:
8389
"""

0 commit comments

Comments
 (0)