UNPKG

@webex/http-core

Version:

Core HTTP library for the Cisco Webex

92 lines (87 loc) 4.52 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 _defineProperties = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/define-properties")); 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 _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized")); 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 _httpError = _interopRequireDefault(require("../http-error")); var _interceptor = _interopRequireDefault(require("../lib/interceptor")); 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. */ var LOCUS_REDIRECT_ERROR = 2000002; var APPAPI_REDIRECT_ERROR = 404100; /** * @class */ var HttpStatusInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) { (0, _inherits2.default)(HttpStatusInterceptor, _Interceptor); var _super = _createSuper(HttpStatusInterceptor); /** * @param {Object} webex * @param {Object} options * @returns {HttpStatusInterceptor} */ function HttpStatusInterceptor(webex, options) { var _this; (0, _classCallCheck2.default)(this, HttpStatusInterceptor); _this = _super.call(this, webex); var ErrorConstructor = options && (options.error || options.ErrorConstructor) || _httpError.default; (0, _defineProperties.default)((0, _assertThisInitialized2.default)(_this), { ErrorConstructor: { value: ErrorConstructor } }); return _this; } /** * @param {Object} options * @returns {HttpStatusInterceptor} */ (0, _createClass2.default)(HttpStatusInterceptor, [{ key: "onResponse", value: /** * @param {Object} options * @param {HttpResponse} response * @returns {Promise} */ function onResponse(options, response) { if (response.statusCode) { if (response.statusCode < 400) { return _promise.default.resolve(response); } // to handle locus redirects if (response.statusCode === 404 && response.body && response.body.errorCode === LOCUS_REDIRECT_ERROR) { return _promise.default.resolve(response); } // to handle appapi redirects if (response.statusCode === 404 && response.body && response.body.code === APPAPI_REDIRECT_ERROR) { return _promise.default.resolve(response); } } // Note: the extra parenthesis below are required to make sure `new` is // applied to the correct method (i.e., the result of `select()`, not // `select()` itself). return _promise.default.reject(new (this.ErrorConstructor.select(response.statusCode))(response)); } }], [{ key: "create", value: function create(options) { return new HttpStatusInterceptor(this, options); } }]); return HttpStatusInterceptor; }(_interceptor.default); //# sourceMappingURL=http-status.js.map