Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions modal_backend/routes/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,21 @@ async def create_service(
return ServiceGet.model_validate(new_service)


@service.patch("/{id}", response_model=ServiceGet)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

лучше здесь использовать patch а не put, так как в логике метода update models/base.py присутствует проверка обновления только нужных переданных данных, если будем потом модернизировать данный эндпоинт, то в случае необязательности определенных полей, они могут быть заменены на дефолтное значение(если не будут переданы теле запроса)

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:
"""
Expand Down
8 changes: 7 additions & 1 deletion modal_backend/utils/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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:
"""
Expand Down
Loading