def dispatch(self, request): local.request = request local.host = wsgi.host(request.environ) local.origin = origin(self.conf.getiter("general", "host"))(request.environ) adapter = self.urls.bind_to_environ(request.environ) try: handler, values = adapter.match() except HTTPException as e: return error_handler(request.environ, request, e) else: try: response = handler(request.environ, request, **values) except HTTPException as e: return error_handler(request.environ, request, e) except Exception: logger.exception("%s %s", request.method, request.environ["PATH_INFO"]) return error_handler(request.environ, request, InternalServerError()) else: return response
def __call__(self, environ, start_response): if Request(environ).url.endswith((".js", ".css")): return self.isso.values()[0](environ, start_response) if "HTTP_X_ORIGIN" in environ and "HTTP_ORIGIN" not in environ: environ["HTTP_ORIGIN"] = environ["HTTP_X_ORIGIN"] origin = environ.get("HTTP_ORIGIN", wsgi.host(environ)) try: # logger.info("dispatch %s", origin) return self.isso[origin](environ, start_response) except KeyError: # logger.info("unable to dispatch %s", origin) resp = ImATeapot("unable to dispatch %s" % origin) return resp(environ, start_response)
def dispatch(self, request): local.request = request local.host = wsgi.host(request.environ) local.origin = origin(self.conf.getiter("general", "host"))(request.environ) adapter = self.urls.bind_to_environ(request.environ) try: handler, values = adapter.match() except HTTPException as e: return e else: try: response = handler(request.environ, request, **values) except HTTPException as e: return e except Exception: logger.exception("%s %s", request.method, request.environ["PATH_INFO"]) return InternalServerError() else: return response