| 82 | |
| 83 | |
| 84 | class ToolTaskParameterSerializer(serializers.Serializer): |
| 85 | user_input_field_list = serializers.JSONField(required=False) |
| 86 | |
| 87 | @staticmethod |
| 88 | def _validate_input_dict(value, field_name): |
| 89 | if not value: |
| 90 | return value |
| 91 | if not isinstance(value, dict): |
| 92 | raise serializers.ValidationError(_("%s must be a dict") % field_name) |
| 93 | |
| 94 | for key, val in value.items(): |
| 95 | serializer = InputField(data=val) |
| 96 | if not serializer.is_valid(): |
| 97 | raise serializers.ValidationError({f"{field_name}.{key}": serializer.errors}) |
| 98 | return value |
| 99 | |
| 100 | def validate_user_input_field_list(self, value): |
| 101 | return self._validate_input_dict(value, 'user_input_field_list') |
| 102 | |
| 103 | |
| 104 | class TriggerValidationMixin: |