Skip to content

Commit 0577add

Browse files
committed
feat: Is active source
1 parent f2ffcd0 commit 0577add

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed

apps/trigger/serializers/trigger.py

Lines changed: 25 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ class TriggerEditRequest(serializers.Serializer):
151151
trigger_type = serializers.ChoiceField(required=False, choices=TriggerTypeChoices)
152152
trigger_setting = serializers.DictField(required=False, label=_("trigger setting"))
153153
meta = serializers.DictField(default=dict, required=False)
154-
is_active = serializers.BooleanField(required=False, label=_('Is active'))
155154
trigger_task = TriggerTaskEditRequest(many=True, required=False)
156155

157156

@@ -341,7 +340,7 @@ def insert(self, instance, with_valid=True):
341340
trigger_type=valid_data.get('trigger_type'),
342341
trigger_setting=valid_data.get('trigger_setting'),
343342
meta=valid_data.get('meta', {}),
344-
is_active=False,
343+
is_active=valid_data.get('is_active') or False ,
345344
user_id=self.data.get('user_id'),
346345
)
347346
trigger_model.save()
@@ -358,18 +357,37 @@ def insert(self, instance, with_valid=True):
358357

359358
return TriggerResponse(trigger_model).data
360359

361-
@staticmethod
362-
def to_trigger_task_model(trigger_id: str, task_data: dict):
360+
def to_trigger_task_model(self, trigger_id: str, task_data: dict):
361+
source_type = task_data.get('source_type')
362+
source_id = task_data.get('source_id')
363+
is_active = self.is_active_source(source_type,source_id)
363364
return TriggerTask(
364365
id=uuid.uuid7(),
365366
trigger_id=trigger_id,
366-
source_type=task_data.get('source_type'),
367-
source_id=task_data.get('source_id'),
368-
is_active=task_data.get('is_active', False),
367+
source_type=source_type,
368+
source_id=source_id,
369+
is_active=is_active,
369370
parameter=task_data.get('parameter', {}),
370371
meta=task_data.get('meta', {})
371372
)
372373

374+
@staticmethod
375+
def is_active_source(source_type: str, source_id: str):
376+
377+
config = {
378+
TriggerTaskTypeChoices.APPLICATION: (Application, 'is_publish'),
379+
TriggerTaskTypeChoices.TOOL: (Tool, 'is_active'),
380+
}
381+
if source_type not in config:
382+
raise AppApiException(500, _('Error source type'))
383+
source_model,field= config.get(TriggerTaskTypeChoices(source_type))
384+
source = QuerySet(source_model).filter(id=source_id).first()
385+
if not source:
386+
raise AppApiException(500, _(f'{source_type} id does not exist'))
387+
388+
return getattr(source,field)
389+
390+
373391
class Batch(serializers.Serializer):
374392
workspace_id = serializers.CharField(required=True, label=_('workspace id'))
375393
user_id = serializers.UUIDField(required=True, label=_("User ID"))

0 commit comments

Comments
 (0)