1
1

run_server.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. valid_routes = ['login',
  11. 'register',
  12. 'depot',
  13. 'activate_key',
  14. 'order', 'orders',
  15. 'news',
  16. 'transactions',
  17. 'orders_on',
  18. 'cancel_order',
  19. 'leaderboard']
  20. @route('/<path>', method='POST')
  21. def process(path):
  22. path = path.strip().lower()
  23. if path not in valid_routes:
  24. return not_found()
  25. response.content_type = 'application/json'
  26. method_to_call = getattr(server_controller, path)
  27. try:
  28. model.drop_expired_orders()
  29. resp = method_to_call()
  30. if response.status_code == 200:
  31. model.connection.commit()
  32. else:
  33. model.connection.rollback()
  34. return resp
  35. except sqlite3.IntegrityError as e:
  36. print(e)
  37. model.connection.rollback()
  38. return server_controller.bad_request('Action violates database constraints.')
  39. run(host='0.0.0.0', port=connection.port, debug=debug)
  40. model.connection.close()