X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/a791ae7c71b918ca39e7083209019de03a164252..bf99d8859b9b576381cde347bd8abd4544f09d38:/src/catalogue/api/serializers.py diff --git a/src/catalogue/api/serializers.py b/src/catalogue/api/serializers.py index 7c792d586..e8f04ca70 100644 --- a/src/catalogue/api/serializers.py +++ b/src/catalogue/api/serializers.py @@ -24,7 +24,7 @@ class TagDetailSerializer(serializers.ModelSerializer): fields = ['name', 'url', 'sort_key', 'description'] -class BookSerializer(LegacyMixin, serializers.ModelSerializer): +class BaseBookSerializer(LegacyMixin, serializers.ModelSerializer): author = serializers.CharField(source='author_unicode') kind = serializers.CharField(source='kind_unicode') epoch = serializers.CharField(source='epoch_unicode') @@ -33,20 +33,30 @@ class BookSerializer(LegacyMixin, serializers.ModelSerializer): simple_thumb = serializers.FileField(source='cover_api_thumb') href = AbsoluteURLField(view_name='catalogue_api_book', view_args=['slug']) url = AbsoluteURLField() - liked = BookLiked() + cover = serializers.CharField() cover_thumb = ThumbnailField('139x193', source='cover') class Meta: model = Book fields = [ 'kind', 'full_sort_key', 'title', 'url', 'cover_color', 'author', - 'cover', 'liked', 'epoch', 'href', 'has_audio', 'genre', + 'cover', 'epoch', 'href', 'has_audio', 'genre', 'simple_thumb', 'slug', 'cover_thumb'] legacy_non_null_fields = [ 'kind', 'author', 'epoch', 'genre', 'cover', 'simple_thumb', 'cover_thumb'] +class BookSerializer(BaseBookSerializer): + liked = BookLiked() + cover = serializers.FileField() + + class Meta: + model = Book + fields = BaseBookSerializer.Meta.fields + ['liked'] + legacy_non_null_fields = BaseBookSerializer.Meta.legacy_non_null_fields + + class MediaSerializer(LegacyMixin, serializers.ModelSerializer): url = serializers.FileField(source='file') @@ -92,6 +102,20 @@ class BookDetailSerializer(LegacyMixin, serializers.ModelSerializer): 'cover', 'simple_cover', 'cover_thumb', 'simple_thumb'] +class BookPreviewSerializer(BookDetailSerializer): + class Meta: + model = Book + fields = BookDetailSerializer.Meta.fields + ['slug'] + legacy_non_null_fields = BookDetailSerializer.Meta.legacy_non_null_fields + + +class EbookSerializer(BookSerializer): + class Meta: + model = Book + fields = ['author', 'href', 'title', 'cover', 'slug'] + Book.ebook_formats + legacy_non_null_fields = ['author', 'cover'] + Book.ebook_formats + + class CollectionListSerializer(serializers.ModelSerializer): url = AbsoluteURLField() href = AbsoluteURLField(view_name='collection-detail', view_args=['slug'])