refactor input handling

pull/4/head
Blake DeMarcy 2017-05-03 17:33:41 -05:00
parent fe1d1d51f3
commit 8cd30321f2
1 changed files with 10 additions and 10 deletions

View File

@ -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.")