Source code for mathviz_hopper.src.server

from threading import Thread
from bottle import Bottle, route, run, post, request, response
from server_helpers import MyWSGIRefServer
import json

[docs]class Server: def __init__(self, obj): app = Bottle() self._setup_routing(app) self.server = MyWSGIRefServer(host="localhost", port=obj.port) self.index = obj.index self.settings = obj.settings def begin(): run(app, server=self.server) Thread(target=begin).start() def __delete__(self): self.server.stop() def _setup_routing(self, app): @app.route('/settings') def settings(): response.headers['Access-Control-Allow-Origin'] = '*' response.content_type = 'application/json' return json.dumps(self.settings) @app.route('/query', method='POST') def query(): query=json.loads(request.body.read()).get("query") return_val = self.index.query(query) print return_val response.headers['Access-Control-Allow-Origin'] = '*' response.headers['Access-Control-Allow-Methods'] = 'POST' response.headers['Access-Control-Allow-Headers'] = 'Origin, Accept, Content-Type, X-Requested-With, X-CSRF-Token' response.content_type = 'application/json' return json.dumps(return_val)