summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2016-06-27 15:21:12 +0100
committerErik Johnston <erik@matrix.org>2016-06-27 15:21:12 +0100
commit6c137b321decdca9a7fb3f34616c8520f208c31c (patch)
tree9a076bca6b9e4c0bac74b9553e7f72a17fd13399
parentComments (diff)
downloadsynapse-6c137b321decdca9a7fb3f34616c8520f208c31c.tar.xz
Encode batch tokens better
-rw-r--r--synapse/handlers/sync.py6
-rw-r--r--synapse/types.py12
2 files changed, 12 insertions, 6 deletions
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py

index 0c88a10ba6..de1571de88 100644 --- a/synapse/handlers/sync.py +++ b/synapse/handlers/sync.py
@@ -62,13 +62,13 @@ class SyncPaginationConfig(collections.namedtuple("SyncPaginationConfig", [ super(SyncPaginationConfig, self).__init__(order, limit, tags) -SYNC_PAGINATION_TAGS_INCLUDE_ALL = "include_all" -SYNC_PAGINATION_TAGS_IGNORE = "ignore" +SYNC_PAGINATION_TAGS_INCLUDE_ALL = "m.include_all" +SYNC_PAGINATION_TAGS_IGNORE = "m.ignore" SYNC_PAGINATION_VALID_TAGS_OPTIONS = ( SYNC_PAGINATION_TAGS_INCLUDE_ALL, SYNC_PAGINATION_TAGS_IGNORE, ) -SYNC_PAGINATION_ORDER_TS = "o" +SYNC_PAGINATION_ORDER_TS = "m.origin_server_ts" SYNC_PAGINATION_VALID_ORDERS = (SYNC_PAGINATION_ORDER_TS,) diff --git a/synapse/types.py b/synapse/types.py
index 2bbc7ae3b7..6c7bdf0cf9 100644 --- a/synapse/types.py +++ b/synapse/types.py
@@ -148,6 +148,12 @@ class SyncNextBatchToken( return self._replace(**kwargs) +_ORDER_ENCODE = {"m.origin_server_ts": "o"} +_ORDER_DECODE = {v: k for k, v in _ORDER_ENCODE.items()} +_TAG_ENCODE = {"m.include_all": "i", "m.ignore": "x"} +_TAG_DECODE = {v: k for k, v in _TAG_ENCODE.items()} + + class SyncPaginationState( namedtuple("SyncPaginationState", ( "order", @@ -159,16 +165,16 @@ class SyncPaginationState( @classmethod def from_dict(cls, d): try: - return cls(d["o"], d["v"], d["l"], d["t"]) + return cls(_ORDER_DECODE[d["o"]], d["v"], d["l"], _TAG_DECODE[d["t"]]) except: raise SynapseError(400, "Invalid Token") def to_dict(self): return { - "o": self.order, + "o": _ORDER_ENCODE[self.order], "v": self.value, "l": self.limit, - "t": self.tags, + "t": _TAG_ENCODE[self.tags], } def replace(self, **kwargs):