diff --git a/synapse/streams/config.py b/synapse/streams/config.py
index 5cb7875181..a044280410 100644
--- a/synapse/streams/config.py
+++ b/synapse/streams/config.py
@@ -18,7 +18,7 @@ import attr
from synapse.api.constants import Direction
from synapse.api.errors import SynapseError
-from synapse.http.servlet import parse_integer, parse_string
+from synapse.http.servlet import parse_enum, parse_integer, parse_string
from synapse.http.site import SynapseRequest
from synapse.storage.databases.main import DataStore
from synapse.types import StreamToken
@@ -44,15 +44,9 @@ class PaginationConfig:
store: "DataStore",
request: SynapseRequest,
default_limit: int,
- default_dir: str = "f",
+ default_dir: Direction = Direction.FORWARDS,
) -> "PaginationConfig":
- direction_str = parse_string(
- request,
- "dir",
- default=default_dir,
- allowed_values=[Direction.FORWARDS.value, Direction.BACKWARDS.value],
- )
- direction = Direction(direction_str)
+ direction = parse_enum(request, "dir", Direction, default=default_dir)
from_tok_str = parse_string(request, "from")
to_tok_str = parse_string(request, "to")
|