Do not allow a None-limit on PaginationConfig. (#14146)

The callers either set a default limit or manually handle a None-limit
later on (by setting a default value).

Update the callers to always instantiate PaginationConfig with a default
limit and then assume the limit is non-None.
This commit is contained in:
Patrick Cloke 2022-10-14 08:30:05 -04:00 committed by GitHub
parent c7446906bd
commit 126a15794c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 29 additions and 50 deletions

View file

@ -35,14 +35,14 @@ class PaginationConfig:
from_token: Optional[StreamToken]
to_token: Optional[StreamToken]
direction: str
limit: Optional[int]
limit: int
@classmethod
async def from_request(
cls,
store: "DataStore",
request: SynapseRequest,
default_limit: Optional[int] = None,
default_limit: int,
default_dir: str = "f",
) -> "PaginationConfig":
direction = parse_string(
@ -69,12 +69,10 @@ class PaginationConfig:
raise SynapseError(400, "'to' parameter is invalid")
limit = parse_integer(request, "limit", default=default_limit)
if limit < 0:
raise SynapseError(400, "Limit must be 0 or above")
if limit:
if limit < 0:
raise SynapseError(400, "Limit must be 0 or above")
limit = min(int(limit), MAX_LIMIT)
limit = min(limit, MAX_LIMIT)
try:
return PaginationConfig(from_tok, to_tok, direction, limit)