From c0309e47b553ab82ef04bee4fc6ce22928efc6cb Mon Sep 17 00:00:00 2001 From: Jake Howard Date: Tue, 11 Apr 2017 14:19:36 +0100 Subject: [PATCH] Serialize request --- lantern/request.py | 20 ++++++++++++++++++++ lantern/route.py | 3 ++- lantern/test_handle.py | 3 ++- 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 lantern/request.py diff --git a/lantern/request.py b/lantern/request.py new file mode 100644 index 0000000..599365b --- /dev/null +++ b/lantern/request.py @@ -0,0 +1,20 @@ +from sanic.exceptions import InvalidUsage + + +SERIALIZE_ATTRS = [ + 'args', + 'form', + 'url', + 'ip', + 'query_string' +] + + +def serialize_request(request): + serialized = {key: getattr(request, key) for key in SERIALIZE_ATTRS} + try: + serialized['json'] = request.json + except InvalidUsage: # if there's no body, we cant add it + pass + serialized['user_agent'] = request['user_agent'].to_dict() + return serialized diff --git a/lantern/route.py b/lantern/route.py index 3448ce5..fa2a6e7 100644 --- a/lantern/route.py +++ b/lantern/route.py @@ -1,12 +1,13 @@ from sanic.response import html from lantern.handle import execute_handle from lantern.error import error_response +from lantern.request import serialize_request import os async def main_route(request, path=None): handle = os.path.join(os.path.dirname(__file__), 'test_handle.py') - result = execute_handle(handle, {}) + result = execute_handle(handle, serialize_request(request)) if result.exit_code != 0: return error_response(result.error) diff --git a/lantern/test_handle.py b/lantern/test_handle.py index e6b9d0b..8e32f32 100755 --- a/lantern/test_handle.py +++ b/lantern/test_handle.py @@ -2,4 +2,5 @@ # Test handler -print("

Test

") +import sys +print(sys.stdin.read())