@webex/webex-core
Version:
Plugin handling for Cisco Webex
78 lines (76 loc) • 3.92 kB
JavaScript
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
var _httpCore = require("@webex/http-core");
var _webexHttpError = _interopRequireDefault(require("../webex-http-error"));
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /*!
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
*/
/**
* Changes server url when it fails
*/
var ServerErrorInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) {
(0, _inherits2.default)(ServerErrorInterceptor, _Interceptor);
var _super = _createSuper(ServerErrorInterceptor);
function ServerErrorInterceptor() {
(0, _classCallCheck2.default)(this, ServerErrorInterceptor);
return _super.apply(this, arguments);
}
(0, _createClass2.default)(ServerErrorInterceptor, [{
key: "onResponseError",
value:
/**
* @see Interceptor#onResponseError
* @param {Object} options
* @param {Object} reason
* @returns {Object}
*/
function onResponseError(options, reason) {
if ((reason instanceof _webexHttpError.default.InternalServerError || reason instanceof _webexHttpError.default.BadGateway || reason instanceof _webexHttpError.default.ServiceUnavailable) && options.uri) {
var feature = this.webex.internal.device.features.developer.get('web-high-availability');
if (feature && feature.value) {
this.webex.internal.metrics.submitClientMetrics('web-ha', {
fields: {
success: false
},
tags: {
action: 'failed',
error: reason.message,
url: options.uri
}
});
return _promise.default.resolve(this.webex.internal.services.markFailedUrl(options.uri)).then(function () {
return _promise.default.reject(reason);
});
}
}
return _promise.default.reject(reason);
}
}], [{
key: "create",
value:
/**
* @returns {HAMessagingInterceptor}
*/
function create() {
// eslint-disable-next-line no-invalid-this
return new ServerErrorInterceptor({
webex: this
});
}
}]);
return ServerErrorInterceptor;
}(_httpCore.Interceptor);
//# sourceMappingURL=server-error.js.map
;