def setUp(self): self.loop = asyncio.new_event_loop() self.app = web.Application(loop=self.loop) self.cors = CorsConfig(self.app, defaults={"*": ResourceOptions()}) self.get_route = self.app.router.add_route("GET", "/get_path", _handler) self.options_route = self.app.router.add_route("OPTIONS", "/options_path", _handler)
def __init__(self, port, logs=None): # Build Web App self.port = port self.logs = logs self.webapp = web.Application(middlewares=[ # Just in case someone wants to use it behind a reverse proxy # Not sure why someone will want to do that though XForwardedRelaxed().middleware, # Handle unexpected and HTTP exceptions self._middleware_exceptions, # Handle media type validation self._middleware_media_type, # Handle schema validation self._middleware_schema, ]) self.webapp.router.add_get('/api/logs', self.api_logs) self.webapp.router.add_post('/api/config', self.api_config) self.webapp.router.add_post('/api/push', self.api_push) self.webapp.router.add_post('/api/message', self.api_message) # Enable CORS in case someone wants to build a web agent self.cors = CorsConfig( self.webapp, defaults={ '*': ResourceOptions( allow_credentials=True, expose_headers='*', allow_headers='*', ) } ) for route in self.webapp.router.routes(): self.cors.add(route) # Create task for the push hearbeat event_loop = get_event_loop() self.timestamp = None self.heartbeat = event_loop.create_task(self._check_last_timestamp()) # Build Terminal UI App self.ui = UIManager() self.tuiapp = MainLoop( self.ui.topmost, pop_ups=True, palette=self.ui.palette, event_loop=AsyncioEventLoop(loop=event_loop), )
def cors(app): return CorsConfig(app, defaults={ "*": ResourceOptions() })
def cors(_app): ret = CorsConfig(_app, defaults=DEFAULT_CONFIG) _app[APP_CONFIG_KEY] = ret return ret