def book_get(limit): current_group = utils.get_current_group() if not current_group.book_view: return flask.Response(status=403, response='no permission') books = Book.query().order(-Book.added_date).fetch(limit) results = [{book.key.id(): book.to_dict()} for book in books] return results
def book_id_get(id): current_group = utils.get_current_group() if not current_group.book_view: return flask.Response(status=403, response='no permission') selected_book = ndb.Key(Book, id.lower()).get() if selected_book: return {selected_book.key.id(): selected_book.to_dict()} else: return flask.Response(status=404, response='not found')
def book_id_post(id, book): current_group = utils.get_current_group() if not current_group.book_edit: return flask.Response(status=403, response='no permission') if not (len(id) == 13 and id.isdigit()): return flask.Response(status=400, response='id must be 13 digits integer') if isinstance(book_id_get(id), dict): return flask.Response(status=400, response='already exists') new_book = Book(id=id) new_book.title = book['title'] new_book.authors = book['authors'] new_book.put() return {id: new_book.to_dict()}