feat: complete deal
This commit is contained in:
@@ -972,4 +972,20 @@ class DealService(BaseService):
|
||||
return DealProductAddKitResponse(ok=True, message='Набор услуг успешно добавлен к товару')
|
||||
except Exception as e:
|
||||
return DealProductAddKitResponse(ok=False, message=str(e))
|
||||
|
||||
# endregion
|
||||
async def complete(self, user: User, request: DealCompleteRequest) -> DealCompleteResponse:
|
||||
try:
|
||||
# check for admin
|
||||
if not user.is_admin:
|
||||
return DealCompleteResponse(ok=False, message='Завершить сделку может только администратор')
|
||||
|
||||
deal = await self._get_deal_by_id(request.deal_id)
|
||||
if not deal:
|
||||
return DealCompleteResponse(ok=False, message="Сделка не найдена")
|
||||
deal.is_completed = True
|
||||
await self.session.commit()
|
||||
return DealCompleteResponse(ok=True, message="Сделка успешно завершена")
|
||||
except Exception as e:
|
||||
await self.session.rollback()
|
||||
return DealCompleteResponse(ok=False, message=str(e))
|
||||
|
||||
Reference in New Issue
Block a user