Commit 38a2ed6f by Tom Christie

Python 3 fixes for cursor pagination

parent ca372ef6
...@@ -389,7 +389,8 @@ Cursor = namedtuple('Cursor', ['offset', 'reverse', 'position']) ...@@ -389,7 +389,8 @@ Cursor = namedtuple('Cursor', ['offset', 'reverse', 'position'])
def decode_cursor(encoded): def decode_cursor(encoded):
try: try:
tokens = urlparse.parse_qs(b64decode(encoded).decode('ascii'), keep_blank_values=True) querystring = b64decode(encoded.encode('ascii')).decode('ascii')
tokens = urlparse.parse_qs(querystring, keep_blank_values=True)
offset = int(tokens['offset'][0]) offset = int(tokens['offset'][0])
reverse = bool(int(tokens['reverse'][0])) reverse = bool(int(tokens['reverse'][0]))
position = tokens['position'][0] position = tokens['position'][0]
...@@ -405,7 +406,8 @@ def encode_cursor(cursor): ...@@ -405,7 +406,8 @@ def encode_cursor(cursor):
'reverse': '1' if cursor.reverse else '0', 'reverse': '1' if cursor.reverse else '0',
'position': cursor.position 'position': cursor.position
} }
return b64encode(urlparse.urlencode(tokens, doseq=True).encode('ascii')) querystring = urlparse.urlencode(tokens, doseq=True)
return b64encode(querystring.encode('ascii')).decode('ascii')
class CursorPagination(BasePagination): class CursorPagination(BasePagination):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment