You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

67 lines
2.3 KiB

from rest_framework import serializers
from utils import FileFieldSerializer
class OnlineClassTokenCreateSerializer(serializers.Serializer):
redirect_path = serializers.CharField(required=False)
def validate_redirect_path(self, value: str) -> str:
value = value.strip()
if value and value.startswith("http"):
raise serializers.ValidationError("Redirect path must be relative to the frontend domain.")
return value
class OnlineClassTokenVerifySerializer(serializers.Serializer):
token = serializers.CharField(max_length=128)
def validate_token(self, value: str) -> str:
value = value.strip()
if not value:
raise serializers.ValidationError("Token is required.")
return value
class LiveSessionRoomCreateSerializer(serializers.Serializer):
room_id = serializers.CharField(required=False, max_length=255, allow_blank=True)
subject = serializers.CharField(required=False, max_length=255, allow_blank=True)
def validate_room_id(self, value: str) -> str:
return value.strip()
def validate_subject(self, value: str) -> str:
return value.strip()
class LiveSessionTokenSerializer(serializers.Serializer):
course_slug = serializers.CharField(max_length=255)
def validate_course_slug(self, value: str) -> str:
value = value.strip()
if not value:
raise serializers.ValidationError("course_slug is required.")
return value
class LiveSessionRecordedFileSerializer(serializers.Serializer):
recorded_file = serializers.FileField(required=True)
def validate_recorded_file(self, value):
if not value:
raise serializers.ValidationError("recorded_file is required.")
return value
class LiveSessionRecordingSerializer(serializers.Serializer):
file = FileFieldSerializer(required=True)
title = serializers.CharField(required=False, max_length=255, allow_blank=True)
recording_type = serializers.ChoiceField(choices=['voice', 'video'], required=False, default='video')
file_time = serializers.DurationField(required=False, allow_null=True)
def validate_file(self, value):
if not value:
raise serializers.ValidationError("file is required.")
return value
def validate_title(self, value):
return value.strip() if value else None