FlaskAPI.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import threading
  2. from flask import jsonify
  3. from core.ConfigurationManager.BrainLoader import BrainLoader
  4. from core.RestAPI.utils import requires_auth
  5. class FlaskAPI(threading.Thread):
  6. def __init__(self, app, brain):
  7. super(FlaskAPI, self).__init__()
  8. self.app = app
  9. self.brain = brain
  10. self.brain_yaml = BrainLoader.get_yaml_config()
  11. self.app.add_url_rule('/synapses', view_func=self.get_synapses, methods=['GET'])
  12. self.app.add_url_rule('/synapses/<synapse_name>', view_func=self.get_synapse, methods=['GET'])
  13. def run(self):
  14. self.app.run(host='0.0.0.0', debug=True, threaded=True, use_reloader=False)
  15. @requires_auth
  16. def get_synapses(self):
  17. """
  18. get all synapse
  19. """
  20. data = jsonify(synapses=self.brain_yaml)
  21. return data, 200
  22. @requires_auth
  23. def get_synapse(self, synapse_name):
  24. """
  25. get all synapse
  26. """
  27. synapse_target = None
  28. all_synapse = self.brain_yaml
  29. for el in all_synapse:
  30. print el
  31. if el[0]["name"] in synapse_name:
  32. synapse_target = el[0]
  33. if synapse_target is not None:
  34. data = jsonify(synapses=synapse_target)
  35. return data, 200
  36. data = {
  37. "synapse name not found": "%s" % synapse_name
  38. }
  39. return jsonify(error=data), 404