Example #1
0
 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
Example #2
0
    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}