from coffeehouse_translation import ChTranslation from hyper_internal_service import web __all__ = ['Server'] class Server(object): def __init__(self, port=5603): """ Public Constructor :param port: """ self.port = port self.web_application = web.Application() self.web_application.add_routes( [ web.post('/', self.root_page), web.post('/google_translate', self.google_translate) ] ) self.ch_translation = ChTranslation() async def root_page(self, request): """ Handles the "/" page, does nothing special :return: """ return web.json_response({"status": True}) async def google_translate(self, request): """ Handles the predict request "/google_translate", usage: POST:: "source": str Source language POST:: "output": str Output language POST:: "input": str The input data :param request: :return: """ post_data = await request.post() results = self.ch_translation.google_translate(post_data["source"], post_data["output"], post_data["input"]) response = { "status": True, "results": results } return web.json_response(response) def start(self): """ Starts the web application :return: """ web.run_app(app=self.web_application, port=self.port) return True def stop(self): """ Stops the web application :return: """ self.web_application.shutdown() self.web_application.cleanup() return True