diff --git a/backend/api/creators/serializers.py b/backend/api/creators/serializers.py index 8df3567..3a76549 100644 --- a/backend/api/creators/serializers.py +++ b/backend/api/creators/serializers.py @@ -1,3 +1,4 @@ +from typing import Dict, List, Optional from rest_framework import serializers from django.utils.timezone import localtime @@ -18,23 +19,24 @@ class CreatorListSerializer(serializers.ModelSerializer): "source_site", "slug", "name", + "mature", "date", "description", "avatar_url", "banner_url", ] - def get_source_site(self, obj): + def get_source_site(self, obj) -> str: return obj.source_site.slug - def get_date(self, obj): + def get_date(self, obj) -> Dict[str, str]: return { "created": localtime(obj.date_created).isoformat(), "imported": localtime(obj.date_imported).isoformat(), "last_import": localtime(obj.date_last_import).isoformat(), } - def get_description(self, obj): + def get_description(self, obj) -> Optional[str]: # Get the most recent CreatorDescription entry creator_desc = ( CreatorDescription.objects.filter(creator=obj) @@ -47,13 +49,13 @@ class CreatorListSerializer(serializers.ModelSerializer): return None # Return None if no descriptions exist - def get_avatar_url(self, obj): + def get_avatar_url(self, obj) -> str: if obj.avatar: return obj.avatar.file.url else: return None - def get_banner_url(self, obj): + def get_banner_url(self, obj) -> str: if obj.banner: return obj.banner.file.url else: @@ -73,6 +75,7 @@ class CreatorDetailsSerializer(serializers.ModelSerializer): "creator_id", "slug", "name", + "mature", "avatar_url", "banner_url", "description", @@ -80,7 +83,7 @@ class CreatorDetailsSerializer(serializers.ModelSerializer): "categories", ] - def get_description(self, obj): + def get_description(self, obj) -> List[Dict[str, str]]: data = [] # Fetch descriptions ordered by date_imported from the through model @@ -99,26 +102,26 @@ class CreatorDetailsSerializer(serializers.ModelSerializer): return data - def get_avatar_url(self, obj): + def get_avatar_url(self, obj) -> Optional[str]: if obj.avatar: return obj.avatar.file.url else: return None - def get_banner_url(self, obj): + def get_banner_url(self, obj) -> Optional[str]: if obj.banner: return obj.banner.file.url else: return None - def get_date(self, obj): + def get_date(self, obj) -> Dict[str, str]: return { "created": localtime(obj.date_created).isoformat(), "imported": localtime(obj.date_imported).isoformat(), "last_import": localtime(obj.date_last_import).isoformat(), } - def get_categories(self, obj): + def get_categories(self, obj) -> List[Dict[str, str]]: data = [] for cat in obj.categories.all(): data.append({"name": cat.name, "slug": cat.slug})