Use parse_json_object_from_request to parse JSON out of request bodies

This commit is contained in:
Mark Haines 2016-03-11 16:41:03 +00:00
parent c081228439
commit e9c1cabac2
11 changed files with 49 additions and 90 deletions

View file

@ -128,14 +128,21 @@ def parse_json_object_from_request(request):
if it wasn't a JSON object.
"""
try:
content = simplejson.loads(request.content.read())
if type(content) != dict:
message = "Content must be a JSON object."
raise SynapseError(400, message, errcode=Codes.BAD_JSON)
return content
content_bytes = request.content.read()
except:
raise SynapseError(400, "Error reading JSON content.")
try:
content = simplejson.loads(content_bytes)
except simplejson.JSONDecodeError:
raise SynapseError(400, "Content not JSON.", errcode=Codes.NOT_JSON)
if type(content) != dict:
message = "Content must be a JSON object."
raise SynapseError(400, message, errcode=Codes.BAD_JSON)
return content
class RestServlet(object):