/api/routes/GlobalOptions.py
Python | 118 lines | 86 code | 29 blank | 3 comment | 3 complexity | a47cdaf790bbb99b31d97276b0dd968e MD5 | raw file
- import json
- from tornado.web import RequestHandler
- from tornado.gen import coroutine
- from api.model.models import GlobalConfiguration
- # from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
- class GlobalConfigurationHandler(RequestHandler):
- def data_received(self, chunk):
- pass
- # GET /options
- @coroutine
- def get(self):
- try:
- session = self.settings['db']
- config_options = session.query(GlobalConfiguration).all()
- options = []
- for option in config_options:
- json_option = {
- 'key': option.key,
- 'value': option.value
- }
- options.append(json_option)
- response = {"page": 1, "options": options}
- self.set_header("Content-Type", "application/jsonp;charset=UTF-8")
- self.set_header("Access-Control-Allow-Origin", "*")
- self.write(response)
- return
- except Exception as e:
- print(e)
- response = {'message': "Could not read configuration options."}
- self.set_status(500, 'Error')
- self.set_header("Access-Control-Allow-Origin", "*")
- self.write(response)
- return
- @coroutine
- # TODO: this shit ain't secure. Authenticate user.
- def put(self):
- session = self.settings['db']
- request = self.request.body.decode("utf-8")
- json_request = json.loads(json.loads(request))
- config = session.query(GlobalConfiguration).filter(GlobalConfiguration.key == json_request['key']).one()
- config.value = str(json_request['value'])
- session.commit()
- response = {'message': "Config updated sucessfully."}
- self.set_status(200, 'Ok')
- self.set_header("Access-Control-Allow-Origin", "*")
- self.write(response)
- return
- @coroutine
- def delete(self):
- response = {"message": "This is not a valid method for this resource."}
- self.set_status(405, 'Error')
- self.set_header("Access-Control-Allow-Origin", "*")
- self.write(response)
- return
- @coroutine
- def trace(self):
- response = {"message": "This is not a valid method for this resource."}
- self.set_status(405, 'Error')
- self.set_header("Access-Control-Allow-Origin", "*")
- self.write(response)
- return
- @coroutine
- def connect(self):
- response = {"message": "This is not a valid method for this resource."}
- self.set_status(405, 'Error')
- self.set_header("Access-Control-Allow-Origin", "*")
- self.write(response)
- return
- @coroutine
- def options(self):
- response = {"message": "This is not a valid method for this resource."}
- self.set_status(405, 'Error')
- self.set_header("Access-Control-Allow-Origin", "*")
- self.write(response)
- return
- @coroutine
- def patch(self):
- response = {"message": "This is not a valid method for this resource."}
- self.set_status(405, 'Error')
- self.set_header("Access-Control-Allow-Origin", "*")
- self.write(response)
- return
- @coroutine
- def head(self):
- response = {"message": "This is not a valid method for this resource."}
- self.set_status(405, 'Error')
- self.set_header("Access-Control-Allow-Origin", "*")
- self.write(response)
- return