serialize user, add account endpoint

This commit is contained in:
Simon
2025-02-12 17:31:59 +07:00
parent 5498958b36
commit 5772ab3e68
5 changed files with 132 additions and 46 deletions

View File

@@ -1,5 +1,7 @@
"""serializer for account model"""
# pylint: disable=abstract-method
from rest_framework import serializers
from user.models import Account
@@ -18,3 +20,45 @@ class AccountSerializer(serializers.ModelSerializer):
"user_permissions",
"last_login",
)
class UserMeConfigSerializer(serializers.Serializer):
"""serialize user me config"""
stylesheet = serializers.CharField()
page_size = serializers.IntegerField()
sort_by = serializers.ChoiceField(
choices=[
"published",
"downloaded",
"views",
"likes",
"duration",
"filesize",
]
)
sort_order = serializers.ChoiceField(choices=["asc", "desc"])
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()
hide_watched = serializers.BooleanField()
show_ignored_only = serializers.BooleanField()
show_subed_only = serializers.BooleanField()
show_help_text = serializers.BooleanField()
def __init__(self, *args, required=True, **kwargs):
super().__init__(*args, **kwargs)
# Override 'required' for all fields if provided
for field in self.fields.values():
field.required = required
class LoginSerializer(serializers.Serializer):
"""serialize login"""
username = serializers.CharField()
password = serializers.CharField()
remember_me = serializers.ChoiceField(choices=["on", "off"], default="off")