Exemplo n.º 1
0
Arquivo: app.py Projeto: jab/radarpost
    def __call__(self, environ, start_response):
        try:
            route = environ.get('wsgiorg.routing_args')            
            if route is None:
                response = Response(status=404)
            else:
                action = _get_action(route[1])
                if action is None:
                    response = Response(status=404)
                else:
                    # build a request, augment it with a config context
                    request = Request(environ=environ)
                    context = self.ContextType(request, self.config)
                    request.context = context
                    check_http_auth(request)
                    response = action(request)
        except BadAuthenticator:
            response = Response(status=401)
        except:
            response = Response(status=500)
            ex_text = traceback.format_exc()
            log.error("Unexpected error: %s" % ex_text)
            if self.config.get('debug', False) == True:
                response.body = ex_text
                response.content_type = 'text/plain'

        return response(environ, start_response)