An ebook/comic library service and web client
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

20 lines
608 B

"""Pagination utility functions."""
from typing import Tuple
from werkzeug.datastructures import MultiDict
from atheneum import errors
def get_pagination_params(request_args: MultiDict) -> Tuple[int, int]:
"""Get page and perPage request parameters."""
page = request_args.get('page', 1)
per_page = request_args.get('perPage', 20)
try:
return int(page), int(per_page)
except ValueError:
raise errors.ClientError(
' '.join([
'Invalid pagination parameters:',
'page={}',
'perPage={}']).format(page, per_page))