"""Flask Request Utils. Utils for parsing request values. """ from collections import namedtuple from account.constants import pagination Pagination = namedtuple('Pagination', ['offset', 'limit']) def get_pagination(request): """Parse pagination information. Args: request (Flask.request): The request object. Returns: Pagination (namedtuple): pagination information. """ page_offset = request.args.get('page_offset') or pagination.PAGE_OFFSET_DEFAULT page_offset = _get_int(page_offset, pagination.PAGE_OFFSET_DEFAULT) page_limit = request.args.get('page_limit') or pagination.PAGE_LIMIT_DEFAULT page_limit = _get_int(page_limit, pagination.PAGE_LIMIT_DEFAULT) return Pagination(page_offset, page_limit) def _get_int(value, default_value): """Helper method to convert a value to int. Args: value (str or int): The value to convert to int. default_value (int): The default value to use if value cannot be converted. Returns: int: value converted to int. """ try: return int(value) except: return default_value