|
14 | 14 | from application.api.application_api import ApplicationCreateAPI |
15 | 15 | from common import result |
16 | 16 | from common.auth import TokenAuth |
| 17 | +from trigger.serializers.task_source_trigger import TaskSourceTriggerListSerializer, TaskSourceTriggerOperateSerializer, \ |
| 18 | + TaskSourceTriggerSerializer |
17 | 19 | from trigger.serializers.trigger import TriggerQuerySerializer, TriggerOperateSerializer |
18 | 20 |
|
19 | 21 | from trigger.api.trigger import TriggerCreateAPI, TriggerOperateAPI, TriggerEditAPI, TriggerBatchDeleteAPI, \ |
20 | | - TriggerBatchActiveAPI |
| 22 | + TriggerBatchActiveAPI, TaskSourceTriggerOperateAPI, TaskSourceTriggerAPI |
21 | 23 | from trigger.serializers.trigger import TriggerSerializer |
22 | 24 |
|
23 | 25 |
|
@@ -162,3 +164,86 @@ def get(self, request: Request, workspace_id: str, current_page: int, page_size: |
162 | 164 | 'is_active': request.query_params.get('is_active'), |
163 | 165 | 'create_user': request.query_params.get('create_user'), |
164 | 166 | }).page(current_page, page_size)) |
| 167 | + |
| 168 | + |
| 169 | +class TaskSourceTriggerView(APIView): |
| 170 | + authentication_classes = [TokenAuth] |
| 171 | + |
| 172 | + @extend_schema( |
| 173 | + 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(), |
| 180 | + tags=[_('Trigger')] # type: ignore |
| 181 | + ) |
| 182 | + def post(self, request: Request, workspace_id: str, source_type: str, source_id: str): |
| 183 | + return result.success(TaskSourceTriggerSerializer(data={ |
| 184 | + 'workspace_id': workspace_id, |
| 185 | + 'user_id': request.user.id |
| 186 | + }).insert({**request.data, 'source_id': source_id, |
| 187 | + 'source_type': source_type})) |
| 188 | + |
| 189 | + @extend_schema( |
| 190 | + methods=['GET'], |
| 191 | + description=_('Get the trigger list of source'), |
| 192 | + summary=_('Get the trigger list of source'), |
| 193 | + operation_id=_('Get the trigger list of source'), # type: ignore |
| 194 | + parameters=TaskSourceTriggerAPI.get_parameters(), |
| 195 | + responses=result.DefaultResultSerializer, |
| 196 | + tags=[_('Trigger')] # type: ignore |
| 197 | + ) |
| 198 | + def get(self, request: Request, workspace_id: str, source_type: str, source_id: str): |
| 199 | + return result.success(TaskSourceTriggerListSerializer(data={ |
| 200 | + 'workspace_id': workspace_id, |
| 201 | + 'source_id': source_id, |
| 202 | + 'source_type': source_type, |
| 203 | + }).list()) |
| 204 | + |
| 205 | + class Operate(APIView): |
| 206 | + authentication_classes = [TokenAuth] |
| 207 | + |
| 208 | + @extend_schema( |
| 209 | + methods=['GET'], |
| 210 | + description=_('Get Task source trigger details'), |
| 211 | + summary=_('Get Task source trigger details'), |
| 212 | + operation_id=_('Get Task source trigger details'), # type: ignore |
| 213 | + parameters=TaskSourceTriggerOperateAPI.get_parameters(), |
| 214 | + responses=result.DefaultResultSerializer, |
| 215 | + tags=[_('Trigger')] # type: ignore |
| 216 | + ) |
| 217 | + def get(self, request: Request, workspace_id: str, source_type: str, source_id: str, trigger_id: str): |
| 218 | + return result.success(TaskSourceTriggerOperateSerializer( |
| 219 | + data={'trigger_id': trigger_id, 'workspace_id': workspace_id, 'user_id': request.user.id, |
| 220 | + 'source_id': source_id, 'source_type': source_type} |
| 221 | + ).one()) |
| 222 | + |
| 223 | + |
| 224 | + @extend_schema( |
| 225 | + methods=['PUT'], |
| 226 | + description=_('Modify the task source trigger'), |
| 227 | + summary=_('Modify the task source trigger'), |
| 228 | + operation_id=_('Modify the task source trigger'), # type: ignore |
| 229 | + parameters=TaskSourceTriggerOperateAPI.get_parameters(), |
| 230 | + request=TaskSourceTriggerOperateAPI.get_request(), |
| 231 | + responses=result.DefaultResultSerializer, |
| 232 | + tags=[_('Trigger')] # type: ignore |
| 233 | + ) |
| 234 | + def get(self, request: Request, workspace_id: str, source_type: str, source_id: str, trigger_id: str): |
| 235 | + return result.success(TaskSourceTriggerOperateSerializer( |
| 236 | + data={'trigger_id': trigger_id, 'workspace_id': workspace_id, 'user_id': request.user.id, |
| 237 | + 'source_id': source_id, 'source_type': source_type} |
| 238 | + ).edit(request.data)) |
| 239 | + |
| 240 | + |
| 241 | + |
| 242 | + |
| 243 | + |
| 244 | + |
| 245 | + |
| 246 | + |
| 247 | + |
| 248 | + |
| 249 | + |
0 commit comments