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.
 
 

42 lines
1.4 KiB

from rest_framework import serializers
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