X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/8bb87b3bec7127941318d5403bedacb441b472b3..11e13d02a963d55ba5e775ce85540441092684e5:/src/catalogue/api/views.py diff --git a/src/catalogue/api/views.py b/src/catalogue/api/views.py index 941b122bd..e5005e2de 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.get_recommended(limit=3) + + class BookList11Labs(BookList2): serializer_class = serializers.BookSerializer11Labs @@ -257,7 +269,10 @@ class BookSyncView(RetrieveAPIView): def retrieve(self, request, *args, **kwargs): instance = self.get_object() - return Response(json.loads(instance.get_sync())) + return Response([ + {"id": i, "timestamp": ts} + for (i, ts) in instance.get_sync() + ]) @vary_on_auth # Because of embargo links. @@ -541,6 +556,15 @@ class BookFragmentView(RetrieveAPIView): return book.choose_fragment() +class BookChildrenView(ListAPIView): + serializer_class = serializers.BookSerializer2 + pagination_class = None + + def get_queryset(self): + book = get_object_or_404(Book, slug=self.kwargs['slug']) + return book.get_children() + + class BookMediaView(ListAPIView): serializer_class = serializers.MediaSerializer2 pagination_class = None