+ books = Book.tagged.with_all(tags)
+ elif top_level:
+ books = Book.objects.filter(parent=None)
+ else:
+ books = Book.objects.all()
+
+ if books.exists():
+ return books
+ else:
+ return rc.NOT_FOUND
+
+ def create(self, request, tags, top_level=False):
+ return rc.FORBIDDEN
+
+
+class BooksHandler(BookDetailHandler):
+ model = Book
+ fields = ['author', 'href', 'title', 'url']
+ anonymous = AnonymousBooksHandler
+
+ def create(self, request, tags, top_level=False):
+ if not request.user.has_perm('catalogue.add_book'):
+ return rc.FORBIDDEN
+
+ data = json.loads(request.POST.get('data'))
+ form = BookImportForm(data)
+ if form.is_valid():
+ form.save()
+ return rc.CREATED