X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/102acc0b6eb715826f26b5082611604cf6ebe240..af8a54f4fbb7956ffbdb4e7b2aaddd7659de4f57:/src/catalogue/api/views.py?ds=sidebyside diff --git a/src/catalogue/api/views.py b/src/catalogue/api/views.py index ed5d10f1d..8cd2b6e80 100644 --- a/src/catalogue/api/views.py +++ b/src/catalogue/api/views.py @@ -226,6 +226,18 @@ class BookList2(ListAPIView): return books +class BookRecommendationsView(ListAPIView): + serializer_class = serializers.BookSerializer2 + pagination_class = None + + def get_queryset(self): + book = get_object_or_404( + Book, + slug=self.kwargs['slug'] + ) + return book.recommended(limit=3) + + class BookList11Labs(BookList2): serializer_class = serializers.BookSerializer11Labs @@ -251,6 +263,18 @@ class BookDetail2(RetrieveAPIView): serializer_class = serializers.BookSerializer2 +class BookSyncView(RetrieveAPIView): + queryset = Book.objects.all() + lookup_field = 'slug' + + def retrieve(self, request, *args, **kwargs): + instance = self.get_object() + return Response([ + {"id": i, "timestamp": ts} + for (i, ts) in instance.get_sync() + ]) + + @vary_on_auth # Because of embargo links. class EbookList(BookList): serializer_class = serializers.EbookSerializer @@ -546,6 +570,7 @@ class BookMediaView(ListAPIView): from .tojson import conv from lxml import etree from rest_framework.views import APIView + class BookJsonView(APIView): def get(self, request, slug): book = get_object_or_404(Book, slug=slug)