| 250 | |
| 251 | |
| 252 | class TriggerTaskCreateRequest(serializers.Serializer): |
| 253 | source_type = serializers.ChoiceField(required=True, choices=TriggerTaskTypeChoices) |
| 254 | source_id = serializers.CharField(required=True, label=_('source_id')) |
| 255 | is_active = serializers.BooleanField(required=False, label=_('Is active')) |
| 256 | meta = serializers.DictField(default=dict, required=False) |
| 257 | parameter = serializers.DictField(default=dict, required=False) |
| 258 | |
| 259 | def validate(self, attrs): |
| 260 | source_type = attrs.get('source_type') |
| 261 | parameter = attrs.get('parameter') |
| 262 | if source_type == TriggerTaskTypeChoices.APPLICATION: |
| 263 | serializer = ApplicationTaskParameterSerializer(data=parameter) |
| 264 | serializer.is_valid(raise_exception=True) |
| 265 | attrs['parameter'] = serializer.validated_data |
| 266 | if source_type == TriggerTaskTypeChoices.TOOL: |
| 267 | serializer = ToolTaskParameterSerializer(data=parameter) |
| 268 | serializer.is_valid(raise_exception=True) |
| 269 | attrs['parameter'] = serializer.validated_data |
| 270 | |
| 271 | return attrs |
| 272 | |
| 273 | |
| 274 | class TriggerTaskEditRequest(serializers.Serializer): |