From 8cd30321f2671e7dd21f3db3e1c151ffbfc9137d Mon Sep 17 00:00:00 2001 From: Blake DeMarcy Date: Wed, 3 May 2017 17:33:41 -0500 Subject: [PATCH] refactor input handling --- server.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/server.py b/server.py index be159b5..eeebd93 100644 --- a/server.py +++ b/server.py @@ -52,22 +52,22 @@ def api_method(function): connection = sqlite3.connect(dbname) # read in the body from the request to a string... if cherrypy.request.method == "POST": - body = str(cherrypy.request.body.read(), "utf8") - else: - body = "" - # the body may be empty, not all methods require input - if body: - body = json.loads(body) - if isinstance(body, dict): + read_in = str(cherrypy.request.body.read(), "utf8") + if not read_in: + # the body may be empty, not all methods require input + body = {} + else: + body = json.loads(read_in) + if not isinstance(body, dict): + raise BBJParameterError("Non-JSONObject input") # lowercase all of its top-level keys body = {key.lower(): value for key, value in body.items()} + else: + body = {} username = cherrypy.request.headers.get("User") auth = cherrypy.request.headers.get("Auth") - if debug: - print("\n\n\nBody: {}\n\ne----------".format(body)) - if (username and not auth) or (auth and not username): raise BBJParameterError( "User or Auth was given without the other.")