def dispatch_request(self, *args, **kwargs): self._check_authorization() mimetype = serializers.get_mimetype(flask.request) result = super(RestController, self).dispatch_request( *args, **self._modify_request_kwargs(kwargs, mimetype)) result, status_code, settings = self._get_controller_result(result) return self._generate_response(result, status_code, settings, mimetype)
def inner_error_handler(exc): """ Serialize exceptions in rest response. :param exc: raised exception :return: exception response """ mimetype = serializers.get_mimetype(request) if isinstance(exc, exceptions.Base): data = {"exception": { "status_code": exc.status_code, "slug": exc.slug, "message": exc.message, "errors": exc.errors }} elif isinstance(exc, wz_exceptions.HTTPException): data = {"exception": { "status_code": exc.code, "slug": exc.name.lower().replace(' ', '_'), "message": exc.description, "errors": {} }} else: logger.error(traceback.format_exc()) data = {"exception": { "status_code": 500, "slug": "unknown_error", "message": exc.message, "errors": {} }} return serializers.encode_response(data, data["exception"]["status_code"], mimetype)