File size: 960 Bytes
090987a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from rest_framework import serializers

class TranscriptionRequestSerializer(serializers.Serializer):
    url = serializers.URLField(required=False, allow_null=True)
    media = serializers.FileField(required=False, allow_null=True)

    def validate(self, attrs):
        url = attrs.get('url')
        media = attrs.get('media')

        if not url and not media:
            raise serializers.ValidationError("Either 'url' or 'media' must be provided.")

        return attrs
    
    def validate_media(self, file):
        if file is None:
            return file  

        allowed_types = ['audio/', 'video/']
        content_type = getattr(file, 'content_type', '')

        if not any(content_type.startswith(t) for t in allowed_types):
            raise serializers.ValidationError("Only audio or video files are allowed.")

        return file

class ClassificationRequestSerializer(serializers.Serializer):
    claim = serializers.CharField()