use enums for validation

This commit is contained in:
Simon
2025-02-17 18:43:54 +07:00
parent cfcb4e6f9e
commit 0ea4c87b9e
5 changed files with 56 additions and 84 deletions

View File

@@ -2,8 +2,10 @@
# pylint: disable=abstract-method
from common.src.helper import get_stylesheets
from rest_framework import serializers
from user.models import Account
from video.src.constants import OrderEnum, SortEnum
class AccountSerializer(serializers.ModelSerializer):
@@ -25,24 +27,15 @@ class AccountSerializer(serializers.ModelSerializer):
class UserMeConfigSerializer(serializers.Serializer):
"""serialize user me config"""
stylesheet = serializers.CharField()
stylesheet = serializers.ChoiceField(choices=get_stylesheets())
page_size = serializers.IntegerField()
sort_by = serializers.ChoiceField(
choices=[
"published",
"downloaded",
"views",
"likes",
"duration",
"filesize",
]
)
sort_order = serializers.ChoiceField(choices=["asc", "desc"])
sort_by = serializers.ChoiceField(choices=SortEnum.names())
sort_order = serializers.ChoiceField(choices=OrderEnum.values())
view_style_home = serializers.ChoiceField(choices=["grid", "list"])
view_style_channel = serializers.ChoiceField(choices=["grid", "list"])
view_style_downloads = serializers.ChoiceField(choices=["grid", "list"])
view_style_playlist = serializers.ChoiceField(choices=["grid", "list"])
grid_items = serializers.IntegerField()
grid_items = serializers.IntegerField(max_value=7, min_value=3)
hide_watched = serializers.BooleanField()
show_ignored_only = serializers.BooleanField()
show_subed_only = serializers.BooleanField()