"""Request helper methods.""" from flask import request from abacus_account.constants.constants import DEFAULT_PAGE_LIMIT from abacus_account.constants.constants import DEFAULT_PAGE_OFFSET from abacus_account.constants.error import ERROR_INVALID_LIMIT_OFFSET def get_optional_numeric_list_from_params(): """Get ids from request params and validate them.""" optional_params = request.json if not optional_params: return return [int(param) for param in optional_params] def validate_pagination_params( limit: int = DEFAULT_PAGE_LIMIT, offset: int = DEFAULT_PAGE_OFFSET ) -> dict: """Format and validate pagination parameters.""" try: limit = int(limit) offset = int(offset) except ValueError: raise Exception(ERROR_INVALID_LIMIT_OFFSET) pagination_params = { 'limit': max(limit, 1), 'offset': max(offset, DEFAULT_PAGE_OFFSET) } return pagination_params