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
pagination_class = None
def get_queryset(self):
- return BookMedia.objects.filter(book__slug=self.kwargs['slug'], type=self.kwargs['type']).order_by('index')
+ return BookMedia.objects.filter(
+ book__slug=self.kwargs['slug'],
+ type=self.kwargs['type']
+ ).order_by('index')
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)
js = conv(etree.parse(book.xml_file.path))
return JsonResponse(js, json_dumps_params={'ensure_ascii': False})
-