def to_paginated_list(self, result, _ns, _operation, **kwargs): items, count, context = self.parse_result(result) headers = encode_count_header(count) paginated_list = OffsetLimitPaginatedList( items=items, count=count, _page=self, _ns=_ns, _operation=_operation, _context=context, ) return paginated_list, headers
def count(**path_data): request_data = load_query_string_data(definition.request_schema) response_data = dict() count = definition.func(**merge_data(path_data, request_data)) headers = encode_count_header(count) definition.header_func(headers, response_data) response_format = self.negotiate_response_content(definition.response_formats) return dump_response_data( None, None, headers=headers, response_format=response_format, )
def search(**path_data): request_data = load_query_string_data(definition.request_schema) page = self.page_cls.from_query_string(request_data) return_value = definition.func( **merge_data(path_data, page.to_dict(as_str=False))) if len(return_value) == 3: items, count, context = return_value else: context = {} items, count = return_value response_data = PaginatedList(ns=ns, page=page, items=items, count=count, schema=definition.response_schema, operation=Operation.Search, **context) headers = encode_count_header(count) return dump_response_data(paginated_list_schema, response_data, headers=headers)
def count(**path_data): request_data = load_query_string_data(definition.request_schema) count = definition.func(**merge_data(path_data, request_data)) headers = encode_count_header(count) return dump_response_data(None, None, headers=headers)