mirror of
https://github.com/avatao-content/test-tutorial-framework
synced 2024-11-12 19:47:18 +00:00
40 lines
1018 B
Python
40 lines
1018 B
Python
|
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()
|