diff --git a/routers/crm/v1/module.py b/routers/crm/v1/module.py index bf5c33d..511b713 100644 --- a/routers/crm/v1/module.py +++ b/routers/crm/v1/module.py @@ -79,24 +79,26 @@ async def delete_module( @router.post( - "/attribute", + "/{moduleId}/attribute/{attributeId}", response_model=AddAttributeResponse, operation_id="add_attribute_to_module", ) async def add_attribute_to_module( session: SessionDependency, - request: AddAttributeRequest, + module_id: int = Path(alias="moduleId"), + attribute_id: int = Path(alias="attributeId"), ): - return await ModuleService(session).add_attribute(request) + return await ModuleService(session).add_attribute(module_id, attribute_id) @router.delete( - "/attribute", + "/{moduleId}/attribute/{attributeId}", response_model=DeleteAttributeResponse, operation_id="remove_attribute_from_module", ) async def remove_attribute_from_module( session: SessionDependency, - request: DeleteAttributeRequest, + module_id: int = Path(alias="moduleId"), + attribute_id: int = Path(alias="attributeId"), ): - return await ModuleService(session).delete_attribute(request) + return await ModuleService(session).delete_attribute(module_id, attribute_id) diff --git a/schemas/module.py b/schemas/module.py index 10428ba..ac98116 100644 --- a/schemas/module.py +++ b/schemas/module.py @@ -45,16 +45,6 @@ class UpdateModuleCommonInfoSchema(BaseSchema): # region Requests -class AddAttributeRequest(BaseSchema): - attribute_id: int - module_id: int - - -class DeleteAttributeRequest(BaseSchema): - attribute_id: int - module_id: int - - class CreateModuleRequest(BaseSchema): entity: CreateModuleSchema diff --git a/services/module.py b/services/module.py index 14c4e98..3a01919 100644 --- a/services/module.py +++ b/services/module.py @@ -69,25 +69,25 @@ class ModuleService( raise ForbiddenException("Нельзя менять встроенный модуль") return True - async def add_attribute(self, request: AddAttributeRequest) -> AddAttributeResponse: - module, attribute = await self._get_module_and_attr_from_request(request) + async def add_attribute(self, module_id: int, attribute_id: int) -> AddAttributeResponse: + module, attribute = await self._get_module_and_attr_from_request(module_id, attribute_id) await self.repository.add_attribute_to_module(module, attribute) return AddAttributeResponse(message="Аттрибут успешно добавлен к модулю") async def delete_attribute( - self, request: DeleteAttributeRequest + self, module_id: int, attribute_id: int ) -> DeleteAttributeResponse: - module, attribute = await self._get_module_and_attr_from_request(request) + module, attribute = await self._get_module_and_attr_from_request(module_id, attribute_id) await self.repository.delete_attribute_from_module(module, attribute) return DeleteAttributeResponse(message="Аттрибут успешно удален из модуля") async def _get_module_and_attr_from_request( - self, request: AddAttributeRequest | DeleteAttributeRequest + self, module_id: int, attribute_id: int, ) -> tuple[Module, Attribute]: - module = await self.repository.get_by_id(request.module_id) + module = await self.repository.get_by_id(module_id) if module.is_built_in: raise ForbiddenException("Нельзя менять встроенный модуль") attr_repo = AttributeRepository(self.repository.session) - attribute = await attr_repo.get_by_id(request.attribute_id) + attribute = await attr_repo.get_by_id(attribute_id) return module, attribute