query.py (638B)
1 from typing import Optional 2 from urllib.parse import urlsplit, parse_qsl 3 import json 4 5 6 def session_established(session): 7 path: Optional[bytes] = None 8 for key, value in session.request_headers: 9 if key == b':path': 10 path = value 11 assert path is not None 12 qs = dict(parse_qsl(urlsplit(path).query)) 13 token = qs[b'token'] 14 if token is None: 15 raise Exception('token is missing, path = {}'.format(path)) 16 17 stream_id = session.create_unidirectional_stream() 18 data = json.dumps(session.stash.take(key=token) or {}).encode('utf-8') 19 session.send_stream_data(stream_id, data, end_stream=True)