"""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))