diff --git a/controller/opt/server.py b/controller/opt/server.py new file mode 100644 index 0000000..82a3811 --- /dev/null +++ b/controller/opt/server.py @@ -0,0 +1,39 @@ +import os +import json + +from tornado.ioloop import IOLoop +from tornado.web import RequestHandler, Application + +from tfw import FSMAwareEventHandler + + +class ControllerPostHandler(RequestHandler): + # pylint: disable=abstract-method + def initialize(self, **kwargs): # pylint: disable=arguments-differ + self.controller = kwargs['controller'] + + def post(self, *args, **kwargs): + self.set_header('Content-Type', 'application/json') + self.write(json.dumps({ + 'solved': self.controller.in_accepted_state + })) + + +class ControllerEventHandler(FSMAwareEventHandler): + def handle_event(self, message): + pass + + +if __name__ == '__main__': + controller = ControllerEventHandler('controller') + application = Application([( + f'/{os.environ["SECRET"]}', + ControllerPostHandler, + {'controller': controller} + )]) + application.listen(os.environ['CONTROLLER_PORT']) + + try: + IOLoop.instance().start() + finally: + controller.cleanup()