Skip to content

Commit cf07536

Browse files
committed
feat: Task source trigger
1 parent 3c38428 commit cf07536

File tree

3 files changed

+57
-11
lines changed

3 files changed

+57
-11
lines changed

apps/trigger/api/trigger.py

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def get_parameters():
2525
type=OpenApiTypes.STR,
2626
location='path',
2727
required=True,
28-
)
28+
),
2929
]
3030

3131
@staticmethod
@@ -36,6 +36,44 @@ def get_request():
3636
def get_response():
3737
return TriggerResponse
3838

39+
class TaskSourceTriggerCreateAPI(APIMixin):
40+
@staticmethod
41+
def get_parameters():
42+
return [
43+
OpenApiParameter(
44+
name="workspace_id",
45+
description="工作空间id",
46+
type=OpenApiTypes.STR,
47+
location='path',
48+
required=True,
49+
),
50+
OpenApiParameter(
51+
name="source_id",
52+
description="资源id",
53+
type=OpenApiTypes.STR,
54+
location='path',
55+
required=True,
56+
),
57+
OpenApiParameter(
58+
name="source_type",
59+
description="资源类型",
60+
type=OpenApiTypes.STR,
61+
location='path',
62+
required=True,
63+
),
64+
]
65+
66+
@staticmethod
67+
def get_request():
68+
return TriggerCreateRequest
69+
70+
@staticmethod
71+
def get_response():
72+
return TriggerResponse
73+
74+
75+
76+
3977
class TriggerBatchDeleteAPI(APIMixin):
4078
@staticmethod
4179
def get_parameters():

apps/trigger/serializers/task_source_trigger.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,18 @@ class TaskSourceTriggerSerializer(serializers.Serializer):
5151
def insert(self, instance, with_valid=True):
5252
if with_valid:
5353
self.is_valid(raise_exception=True)
54-
return TriggerSerializer().insert(instance, with_valid=True)
54+
if not len(instance.get("trigger_task")) == 1:
55+
raise AppApiException(500, _('Trigger task number must be one'))
56+
57+
return TriggerSerializer(data={
58+
'workspace_id': self.data.get('workspace_id'),
59+
'user_id': self.data.get('user_id')
60+
}).insert(instance, with_valid=True)
5561

5662

5763
class TaskSourceTriggerOperateSerializer(serializers.Serializer):
5864
trigger_id = serializers.UUIDField(required=True, label=_('trigger id'))
59-
workspace_id = serializers.CharField(required=True, label=_('workspace id'))
65+
workspace_id = serializers.CharField(required=False, label=_('workspace id'))
6066
source_type = serializers.CharField(required=True, label=_('source type'))
6167
source_id = serializers.CharField(required=True, label=_('source id'))
6268

apps/trigger/views/trigger.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,13 @@
1414
from application.api.application_api import ApplicationCreateAPI
1515
from common import result
1616
from common.auth import TokenAuth
17+
from common.result import DefaultResultSerializer
1718
from trigger.serializers.task_source_trigger import TaskSourceTriggerListSerializer, TaskSourceTriggerOperateSerializer, \
1819
TaskSourceTriggerSerializer
1920
from trigger.serializers.trigger import TriggerQuerySerializer, TriggerOperateSerializer
2021

2122
from trigger.api.trigger import TriggerCreateAPI, TriggerOperateAPI, TriggerEditAPI, TriggerBatchDeleteAPI, \
22-
TriggerBatchActiveAPI, TaskSourceTriggerOperateAPI, TaskSourceTriggerAPI
23+
TriggerBatchActiveAPI, TaskSourceTriggerOperateAPI, TaskSourceTriggerAPI, TaskSourceTriggerCreateAPI
2324
from trigger.serializers.trigger import TriggerSerializer
2425

2526

@@ -171,19 +172,20 @@ class TaskSourceTriggerView(APIView):
171172

172173
@extend_schema(
173174
methods=['POST'],
174-
description=_('Create trigger of source'),
175-
summary=_('Create trigger of source'),
176-
operation_id=_('Create trigger of source'), # type: ignore
177-
parameters=TaskSourceTriggerAPI.get_parameters(),
178-
request=TaskSourceTriggerAPI.get_request(),
179-
responses=TaskSourceTriggerAPI.get_response(),
175+
description=_('Create trigger in source'),
176+
summary=_('Create trigger in source'),
177+
operation_id=_('Create trigger in source'), # type: ignore
178+
parameters=TaskSourceTriggerCreateAPI.get_parameters(),
179+
request=TaskSourceTriggerCreateAPI.get_request(),
180+
responses=TaskSourceTriggerCreateAPI.get_response(),
180181
tags=[_('Trigger')] # type: ignore
181182
)
182183
def post(self, request: Request, workspace_id: str, source_type: str, source_id: str):
183184
return result.success(TaskSourceTriggerSerializer(data={
184185
'workspace_id': workspace_id,
185186
'user_id': request.user.id
186187
}).insert({**request.data, 'source_id': source_id,
188+
'workspace_id': workspace_id,
187189
'source_type': source_type}))
188190

189191
@extend_schema(
@@ -192,7 +194,7 @@ def post(self, request: Request, workspace_id: str, source_type: str, source_id:
192194
summary=_('Get the trigger list of source'),
193195
operation_id=_('Get the trigger list of source'), # type: ignore
194196
parameters=TaskSourceTriggerAPI.get_parameters(),
195-
responses=result.DefaultResultSerializer,
197+
responses=DefaultResultSerializer,
196198
tags=[_('Trigger')] # type: ignore
197199
)
198200
def get(self, request: Request, workspace_id: str, source_type: str, source_id: str):

0 commit comments

Comments
 (0)