| 52 | |
| 53 | |
| 54 | class ApplicationTaskParameterSerializer(serializers.Serializer): |
| 55 | question = InputField(required=True) |
| 56 | api_input_field_list = serializers.JSONField(required=False) |
| 57 | user_input_field_list = serializers.JSONField(required=False) |
| 58 | image_list = InputField(required=False) |
| 59 | document_list = InputField(required=False) |
| 60 | audio_list = InputField(required=False) |
| 61 | video_list = InputField(required=False) |
| 62 | other_list = InputField(required=False) |
| 63 | |
| 64 | @staticmethod |
| 65 | def _validate_input_dict(value, field_name): |
| 66 | if not value: |
| 67 | return value |
| 68 | if not isinstance(value, dict): |
| 69 | raise serializers.ValidationError(_("%s must be a dict") % field_name) |
| 70 | |
| 71 | for key, val in value.items(): |
| 72 | serializer = InputField(data=val) |
| 73 | if not serializer.is_valid(): |
| 74 | raise serializers.ValidationError({f"{field_name}.{key}": serializer.errors}) |
| 75 | return value |
| 76 | |
| 77 | def validate_api_input_field_list(self, value): |
| 78 | return self._validate_input_dict(value, 'api_input_field_list') |
| 79 | |
| 80 | def validate_user_input_field_list(self, value): |
| 81 | return self._validate_input_dict(value, 'user_input_field_list') |
| 82 | |
| 83 | |
| 84 | class ToolTaskParameterSerializer(serializers.Serializer): |
no test coverage detected