crud_org.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. from typing import Sequence
  4. from model.org import Org
  5. from app.admin.schema.org import CreateOrgParam, UpdateOrgParam
  6. from sqlalchemy import Select
  7. from sqlalchemy.ext.asyncio import AsyncSession
  8. from sqlalchemy_crud_plus import CRUDPlus
  9. class CRUDOrg(CRUDPlus[Org]):
  10. async def get(self, db: AsyncSession, pk: int) -> Org | None:
  11. """
  12. 获取IntentOrg
  13. :param db:
  14. :param pk:
  15. :return:
  16. """
  17. return await self.select_model(db, pk)
  18. async def get_by_token(self, db: AsyncSession, token: str) -> Org | None:
  19. """
  20. 获取IntentOrg
  21. :param db:
  22. :param token:
  23. :return:
  24. """
  25. return await self.select_model_by_column(db, api_key=token)
  26. async def get_list(self) -> Select:
  27. """
  28. 获取IntentOrg列表
  29. :return:
  30. """
  31. return await self.select_order('created_at', 'desc')
  32. async def get_all(self, db: AsyncSession) -> Sequence[Org]:
  33. """
  34. 获取所有IntentOrg
  35. :param db:
  36. :return:
  37. """
  38. return await self.select_models(db)
  39. async def create(self, db: AsyncSession, obj_in: CreateOrgParam) -> None:
  40. """
  41. 创建IntentOrg
  42. :param db:
  43. :param obj_in:
  44. :return:
  45. """
  46. await self.create_model(db, obj_in)
  47. async def update(self, db: AsyncSession, pk: int, obj_in: UpdateOrgParam) -> int:
  48. """
  49. 更新IntentOrg
  50. :param db:
  51. :param pk:
  52. :param obj_in:
  53. :return:
  54. """
  55. return await self.update_model(db, pk, obj_in)
  56. async def delete(self, db: AsyncSession, pk: list[int]) -> int:
  57. """
  58. 删除IntentOrg
  59. :param db:
  60. :param pk:
  61. :return:
  62. """
  63. return await self.delete_model_by_column(db, allow_multiple=True, id__in=pk)
  64. org_dao: CRUDOrg = CRUDOrg(Org)