Ejemplo n.º 1
0
    def get(self, id):
        load_options = (
            subqueryload(Book.authors),
            subqueryload(Book.categories),
        )
        book = Book.find_or_fail(id, load_options=load_options)
        data = book.json()
        data['authors'] = [book.json() for book in book.authors]
        data['categories'] = [
            categories.json() for categories in book.categories
        ]

        return data
Ejemplo n.º 2
0
    def put(self, id):
        book = Book.find_or_fail(id)

        data = self.parser.parse_args()
        authors = data.pop('authors', [])
        categories = data.pop('categories', [])

        for key, value in data.items():
            if key == 'isbn' and self.check_for_isbn(id, value):
                return dict(message='ISBN already exists'), 409
            setattr(book, key, value)

        append_authors_to_book(book, authors)
        append_categories_to_book(book, categories)
        book.save()

        return book.json()
Ejemplo n.º 3
0
    def delete(self, id):
        book = Book.find_or_fail(id)
        book.delete()

        return None, 204