trigger_task.py 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. # coding=utf-8
  2. """
  3. @project: MaxKB
  4. @Author:虎虎
  5. @file: trigger_task.py
  6. @date:2026/1/28 16:37
  7. @desc:
  8. """
  9. from drf_spectacular.types import OpenApiTypes
  10. from drf_spectacular.utils import OpenApiParameter
  11. from django.utils.translation import gettext_lazy as _
  12. from rest_framework import serializers
  13. from common.mixins.api_mixin import APIMixin
  14. from common.result import ResultSerializer
  15. from trigger.serializers.trigger_task import ChatRecordSerializerModel, TriggerTaskResponse
  16. class TriggerTaskRecordResultSerializer(serializers.Serializer):
  17. id = serializers.UUIDField(required=True, help_text="任务记录id", label='任务记录id')
  18. state = serializers.CharField(required=True, help_text="任务记录状态", label='任务记录状态')
  19. source_type = serializers.CharField(required=True, help_text="资源类型", label='资源类型')
  20. source_name = serializers.CharField(required=True, help_text="资源名称", label="资源名称")
  21. source_id = serializers.CharField(required=True, help_text="资源id", label="资源id")
  22. task_record_id = serializers.CharField(required=True, help_text="资源任务记录id", label="资源任务记录id")
  23. trigger_id = serializers.CharField(required=True, help_text="触发器id", label="触发器id")
  24. type = serializers.CharField(required=True, help_text="资源类型", label="资源类型")
  25. create_time = serializers.CharField(required=True, help_text="创建时间", label="创建时间")
  26. update_time = serializers.CharField(required=True, help_text="修改时间", label="修改时间")
  27. class TriggerTaskRecordResponse(ResultSerializer):
  28. def get_data(self):
  29. return TriggerTaskRecordResultSerializer(many=True)
  30. class TriggerTaskRecordExecutionDetailsResponse(ResultSerializer):
  31. def get_data(self):
  32. return ChatRecordSerializerModel()
  33. class TriggerTaskResultSerializer(ResultSerializer):
  34. def get_data(self):
  35. return TriggerTaskResponse(many=True)
  36. class TriggerTaskAPI(APIMixin):
  37. @staticmethod
  38. def get_system_parameters():
  39. return [parameter for parameter in TriggerTaskRecordExecutionDetailsAPI.get_parameters() if
  40. not parameter.name == 'workspace_id']
  41. @staticmethod
  42. def get_parameters():
  43. return [
  44. OpenApiParameter(
  45. name="workspace_id",
  46. description="工作空间id",
  47. type=OpenApiTypes.STR,
  48. location='path',
  49. required=True,
  50. ),
  51. OpenApiParameter(
  52. name="trigger_id",
  53. description="触发器id",
  54. type=OpenApiTypes.STR,
  55. location='path',
  56. required=True,
  57. ),
  58. ]
  59. @staticmethod
  60. def get_response():
  61. return TriggerTaskResultSerializer
  62. class TriggerTaskRecordPageAPI(APIMixin):
  63. @staticmethod
  64. def get_system_parameters():
  65. return [parameter for parameter in TriggerTaskRecordExecutionDetailsAPI.get_parameters() if
  66. not parameter.name == 'workspace_id']
  67. @staticmethod
  68. def get_parameters():
  69. return [
  70. OpenApiParameter(
  71. name="workspace_id",
  72. description="工作空间id",
  73. type=OpenApiTypes.STR,
  74. location='path',
  75. required=True,
  76. ),
  77. OpenApiParameter(
  78. name="trigger_id",
  79. description="触发器id",
  80. type=OpenApiTypes.STR,
  81. location='path',
  82. required=True,
  83. ),
  84. OpenApiParameter(
  85. name="current_page",
  86. description=_("Current page"),
  87. type=OpenApiTypes.INT,
  88. location='path',
  89. required=True,
  90. ),
  91. OpenApiParameter(
  92. name="page_size",
  93. description=_("Page size"),
  94. type=OpenApiTypes.INT,
  95. location='path',
  96. required=True,
  97. ),
  98. OpenApiParameter(
  99. name="name",
  100. description="任务名称",
  101. type=OpenApiTypes.STR,
  102. location='query',
  103. required=True,
  104. ),
  105. OpenApiParameter(
  106. name="state",
  107. description="状态",
  108. type=OpenApiTypes.STR,
  109. location='query',
  110. required=True,
  111. ),
  112. OpenApiParameter(
  113. name="order",
  114. description="排序字段",
  115. type=OpenApiTypes.STR,
  116. location='query',
  117. required=True,
  118. ),
  119. ]
  120. @staticmethod
  121. def get_response():
  122. return TriggerTaskRecordResponse
  123. class TriggerTaskRecordExecutionDetailsAPI(APIMixin):
  124. @staticmethod
  125. def get_system_parameters():
  126. return [parameter for parameter in TriggerTaskRecordExecutionDetailsAPI.get_parameters() if
  127. not parameter.name == 'workspace_id']
  128. @staticmethod
  129. def get_parameters():
  130. return [
  131. OpenApiParameter(
  132. name="workspace_id",
  133. description="工作空间id",
  134. type=OpenApiTypes.STR,
  135. location='path',
  136. required=True,
  137. ),
  138. OpenApiParameter(
  139. name="trigger_id",
  140. description="触发器id",
  141. type=OpenApiTypes.STR,
  142. location='path',
  143. required=True,
  144. ),
  145. OpenApiParameter(
  146. name="trigger_task_id",
  147. description="触发器任务id",
  148. type=OpenApiTypes.STR,
  149. location='path',
  150. required=True,
  151. ),
  152. ]
  153. @staticmethod
  154. def get_response():
  155. return TriggerTaskRecordExecutionDetailsResponse