server.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import sqlite3
  2. import connection
  3. import server_controller
  4. import model
  5. from bottle import run, response, route
  6. from server_controller import not_found
  7. from util import debug
  8. if __name__ == '__main__':
  9. print('sqlite3.version', model.db.version)
  10. model.setup()
  11. valid_routes = ['login', 'register', 'depot', 'activate_key', 'order', 'orders', 'news']
  12. @route('/<path>', method='POST')
  13. def process(path):
  14. if path not in valid_routes:
  15. return not_found()
  16. response.content_type = 'application/json'
  17. method_to_call = getattr(server_controller, path)
  18. try:
  19. resp = method_to_call()
  20. if response.status_code == 200:
  21. model.connection.commit()
  22. else:
  23. model.connection.rollback()
  24. return resp
  25. except sqlite3.IntegrityError as e:
  26. print(e)
  27. return server_controller.bad_request('Action violates database constraints.')
  28. run(host='localhost', port=connection.port, debug=debug)
  29. model.db.connection.disconnect()