UNPKG

@webex/webex-core

Version:

Plugin handling for Cisco Webex

78 lines (76 loc) 3.92 kB
"use strict"; 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