def handle_request(self, id): service = LibrarySearchService.from_context() availability = get_boolean_value(request.args.get('availability', 'true')) result = service.get_media(id, availability) if not result: raise NotFound() return result
def handle_request(self): # 1. Request from Service self.title = request.args.get('title', None) self.author = request.args.get('author', None) self.isbn = request.args.get('isbn', None) self.availability = get_boolean_value(request.args.get('availability', 'false')) self.start = int(request.args.get('start', 0)) self.count = int(request.args.get('count', 35)) try: service = LibrarySearchService.from_context() size, results = service.search(self.title, self.author, self.isbn, self.availability, self.start, self.count) results = list(results) # necessary for caching (cannot pickle with generators) except LibrarySearchQuery.InconsistentQuery as e: raise BadRequest(message=e.msg) else: return {'size': size, 'results': results, 'title': self.title, 'author': self.author, 'isbn': self.isbn, 'start': self.start, 'count': self.count}