folder.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. # coding=utf-8
  2. from drf_spectacular.types import OpenApiTypes
  3. from drf_spectacular.utils import OpenApiParameter
  4. from common.mixins.api_mixin import APIMixin
  5. from common.result import ResultSerializer, DefaultResultSerializer
  6. from folders.models.folder import FolderCreateRequest, FolderEditRequest
  7. from folders.serializers.folder import FolderSerializer
  8. class FolderCreateResponse(ResultSerializer):
  9. def get_data(self):
  10. return FolderSerializer()
  11. class FolderCreateAPI(APIMixin):
  12. @staticmethod
  13. def get_parameters():
  14. return [
  15. OpenApiParameter(
  16. name="workspace_id",
  17. description="工作空间id",
  18. type=OpenApiTypes.STR,
  19. location='path',
  20. required=True,
  21. ),
  22. OpenApiParameter(
  23. name="source",
  24. description="菜单",
  25. type=OpenApiTypes.STR,
  26. enum=["APPLICATION", "KNOWLEDGE", "TOOL"],
  27. location='path',
  28. required=True,
  29. )
  30. ]
  31. @staticmethod
  32. def get_request():
  33. return FolderCreateRequest
  34. @staticmethod
  35. def get_response():
  36. return FolderCreateResponse
  37. class FolderReadAPI(APIMixin):
  38. @staticmethod
  39. def get_parameters():
  40. return [
  41. OpenApiParameter(
  42. name="workspace_id",
  43. description="工作空间id",
  44. type=OpenApiTypes.STR,
  45. location='path',
  46. required=True,
  47. ),
  48. OpenApiParameter(
  49. name="source",
  50. description="菜单",
  51. type=OpenApiTypes.STR,
  52. enum=["APPLICATION", "KNOWLEDGE", "TOOL"],
  53. location='path',
  54. required=True,
  55. ),
  56. OpenApiParameter(
  57. name="folder_id",
  58. description="文件夹id",
  59. type=OpenApiTypes.STR,
  60. location='path',
  61. required=True,
  62. )
  63. ]
  64. @staticmethod
  65. def get_response():
  66. return FolderCreateResponse
  67. class FolderEditAPI(FolderReadAPI):
  68. @staticmethod
  69. def get_request():
  70. return FolderEditRequest
  71. class FolderDeleteAPI(FolderReadAPI):
  72. @staticmethod
  73. def get_response():
  74. return DefaultResultSerializer
  75. class FolderTreeReadAPI(APIMixin):
  76. @staticmethod
  77. def get_parameters():
  78. return [
  79. OpenApiParameter(
  80. name="workspace_id",
  81. description="工作空间id",
  82. type=OpenApiTypes.STR,
  83. location='path',
  84. required=True,
  85. ),
  86. OpenApiParameter(
  87. name="source",
  88. description="菜单",
  89. type=OpenApiTypes.STR,
  90. enum=["APPLICATION", "KNOWLEDGE", "TOOL"],
  91. location='path',
  92. required=True,
  93. ),
  94. OpenApiParameter(
  95. name="name",
  96. description="名称",
  97. type=OpenApiTypes.STR,
  98. location='query',
  99. required=False,
  100. ),
  101. ]