Skip to content

Commit

Permalink
refacto creoson_post
Browse files Browse the repository at this point in the history
  • Loading branch information
Zepmanbc committed Jun 8, 2019
1 parent e0dc464 commit d5a5ea6
Showing 1 changed file with 31 additions and 21 deletions.
52 changes: 31 additions & 21 deletions creopyson/connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,29 +46,39 @@ def creoson_post(self, command, function, data=None, key_data=None):
r = requests.post(self.server, data=json.dumps(request))
except requests.exceptions.RequestException as e:
sys.exit(e)
if r.status_code == 200:
try:
json_result = r.json()
except AttributeError:
print("No JSON result.")
if "status" in json_result.keys():
status = json_result["status"]["error"]
if status:
error_msg = json_result["status"]["message"]
raise RuntimeError(error_msg)
else:
if key_data:
if key_data in json_result["data"].keys():
return json_result["data"][key_data]
else:
raise KeyError("`{}` not in creoson result".format(key_data))
elif "sessionId" in json_result.keys():
return json_result["sessionId"]
return json_result.get("data", None)
# TODO tester la présence de data
else:

if r.status_code != 200:
raise ConnectionError()

try:
json_result = r.json()
except AttributeError:
print("No JSON result.")

if "status" not in json_result.keys():
raise KeyError("No `status` in request return.")

if "error" not in json_result["status"].keys():
raise KeyError("No `error` in status return.")

status = json_result["status"]["error"]
if status:
error_msg = json_result["status"]["message"]
raise RuntimeError(error_msg)

if key_data:
if "data" not in json_result.keys():
raise KeyError("no `data` key in creoson return")
if key_data not in json_result["data"].keys():
raise KeyError("`{}` not in creoson result".format(key_data))

return json_result["data"][key_data]

elif "sessionId" in json_result.keys():
return json_result["sessionId"]

return json_result.get("data", None)

def disconnect(self):
"""Disconnect from CREOSON.
Expand Down

0 comments on commit d5a5ea6

Please sign in to comment.