intent_org.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from typing import Annotated
  4. from app.admin.schema.intent_org import CreateIntentOrgParam, GetIntentOrgListDetails, UpdateIntentOrgParam
  5. from app.admin.service.intent_org_service import intent_org_service
  6. from common.pagination import DependsPagination, paging_data
  7. from common.response.response_schema import ResponseModel, response_base
  8. from common.security.jwt_call_center import DependsJwtAuth
  9. from common.security.permission import RequestPermission
  10. from database.db_mysql import CurrentSession
  11. from fastapi import APIRouter, Depends, Path, Query
  12. router = APIRouter()
  13. @router.get('/{pk}', summary='获取 intent_org 详情', dependencies=[DependsJwtAuth])
  14. async def get_intent_org(pk: Annotated[int, Path(...)]) -> ResponseModel:
  15. intent_org = await intent_org_service.get(pk=pk)
  16. return response_base.success(data=intent_org)
  17. @router.get(
  18. '',
  19. summary='(模糊条件)分页获取所有 intent_org',
  20. dependencies=[
  21. DependsJwtAuth,
  22. DependsPagination,
  23. ],
  24. )
  25. async def get_pagination_intent_org(db: CurrentSession) -> ResponseModel:
  26. intent_org_select = await intent_org_service.get_select()
  27. page_data = await paging_data(db, intent_org_select, GetIntentOrgListDetails)
  28. return response_base.success(data=page_data)
  29. @router.post(
  30. '',
  31. summary='创建 intent_org',
  32. dependencies=[
  33. Depends(RequestPermission('intent_org:add')),
  34. ],
  35. )
  36. async def create_intent_org(obj: CreateIntentOrgParam) -> ResponseModel:
  37. await intent_org_service.create(obj=obj)
  38. return response_base.success()
  39. @router.put(
  40. '/{pk}',
  41. summary='更新 intent_org',
  42. dependencies=[
  43. Depends(RequestPermission('intent_org:edit')),
  44. ],
  45. )
  46. async def update_intent_org(pk: Annotated[int, Path(...)], obj: UpdateIntentOrgParam) -> ResponseModel:
  47. count = await intent_org_service.update(pk=pk, obj=obj)
  48. if count > 0:
  49. return response_base.success()
  50. return response_base.fail()
  51. @router.delete(
  52. '',
  53. summary='(批量)删除 intent_org',
  54. dependencies=[
  55. Depends(RequestPermission('intent_org:del')),
  56. ],
  57. )
  58. async def delete_intent_org(pk: Annotated[list[int], Query(...)]) -> ResponseModel:
  59. count = await intent_org_service.delete(pk=pk)
  60. if count > 0:
  61. return response_base.success()
  62. return response_base.fail()