UNPKG

kaltura-node-typescript-client

Version:
103 lines (101 loc) 14.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.KalturaRequest = void 0; var tslib_1 = require("tslib"); var kaltura_response_1 = require("./kaltura-response"); var kaltura_request_base_1 = require("./kaltura-request-base"); var kaltura_api_exception_1 = require("./kaltura-api-exception"); var kaltura_request_options_1 = require("./kaltura-request-options"); var environment_1 = require("../environment"); var KalturaRequest = /** @class */ (function (_super) { (0, tslib_1.__extends)(KalturaRequest, _super); function KalturaRequest(data, _a) { var responseType = _a.responseType, responseSubType = _a.responseSubType, responseConstructor = _a.responseConstructor; var _this = _super.call(this, data) || this; _this.responseSubType = responseSubType; _this.responseType = responseType; _this._responseConstructor = responseConstructor; return _this; } KalturaRequest.prototype.setCompletion = function (callback) { this.callback = callback; return this; }; KalturaRequest.prototype._unwrapResponse = function (response) { if (environment_1.environment.response.nestedResponse) { if (response && response.hasOwnProperty('result')) { if (response.result.hasOwnProperty('error')) { return response.result.error; } else { return response.result; } } else if (response && response.hasOwnProperty('error')) { return response.error; } } return response; }; KalturaRequest.prototype.handleResponse = function (response) { var responseResult; var responseError; try { var unwrappedResponse = this._unwrapResponse(response); var responseObject = null; if (unwrappedResponse) { if (unwrappedResponse instanceof kaltura_api_exception_1.KalturaAPIException) { // handle situation when multi request propagated actual api exception object. responseObject = unwrappedResponse; } else if (unwrappedResponse.objectType === 'KalturaAPIException') { responseObject = new kaltura_api_exception_1.KalturaAPIException(unwrappedResponse.message, unwrappedResponse.code, unwrappedResponse.args); } else { responseObject = _super.prototype._parseResponseProperty.call(this, "", { type: this.responseType, subType: this.responseSubType }, unwrappedResponse); } } if (!responseObject && this.responseType !== 'v') { responseError = new kaltura_api_exception_1.KalturaAPIException("server response is undefined, expected '" + this.responseType + " / " + this.responseSubType + "'", 'client::response_type_error', null); } else if (responseObject instanceof kaltura_api_exception_1.KalturaAPIException) { // got exception from library responseError = responseObject; } else { responseResult = responseObject; } } catch (ex) { responseError = new kaltura_api_exception_1.KalturaAPIException(ex.message, 'client::general_error', null); } var result = new kaltura_response_1.KalturaResponse(responseResult, responseError); if (this.callback) { try { this.callback(result); } catch (ex) { // do nothing by design } } return result; }; KalturaRequest.prototype.setRequestOptions = function (arg) { this.__requestOptions__ = arg instanceof kaltura_request_options_1.KalturaRequestOptions ? arg : new kaltura_request_options_1.KalturaRequestOptions(arg); return this; }; KalturaRequest.prototype.getRequestOptions = function () { return this.__requestOptions__; }; KalturaRequest.prototype.buildRequest = function (defaultRequestOptions) { var requestOptionsObject = this.__requestOptions__ ? this.__requestOptions__.toRequestObject() : {}; var defaultRequestOptionsObject = defaultRequestOptions ? defaultRequestOptions.toRequestObject() : {}; return Object.assign({}, defaultRequestOptionsObject, requestOptionsObject, this.toRequestObject()); }; return KalturaRequest; }(kaltura_request_base_1.KalturaRequestBase)); exports.KalturaRequest = KalturaRequest; //# sourceMappingURL=data:application/json;charset=utf8;base64,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cUJBQUM7QUFBRCxDQWxIQSxBQWtIQyxDQWxIK0MseUNBQWtCLEdBa0hqRTtBQWxIcUIsd0NBQWMiLCJmaWxlIjoiYXBpL2thbHR1cmEtcmVxdWVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEthbHR1cmFSZXNwb25zZSB9IGZyb20gXCIuL2thbHR1cmEtcmVzcG9uc2VcIjtcbmltcG9ydCB7IEthbHR1cmFSZXF1ZXN0QmFzZSwgS2FsdHVyYVJlcXVlc3RCYXNlQXJncyB9IGZyb20gXCIuL2thbHR1cmEtcmVxdWVzdC1iYXNlXCI7XG5pbXBvcnQgeyBLYWx0dXJhQVBJRXhjZXB0aW9uIH0gZnJvbSAnLi9rYWx0dXJhLWFwaS1leGNlcHRpb24nO1xuaW1wb3J0IHsgS2FsdHVyYU9iamVjdEJhc2UgfSBmcm9tICcuL2thbHR1cmEtb2JqZWN0LWJhc2UnO1xuaW1wb3J0IHsgS2FsdHVyYVJlcXVlc3RPcHRpb25zLCBLYWx0dXJhUmVxdWVzdE9wdGlvbnNBcmdzIH0gZnJvbSAnLi9rYWx0dXJhLXJlcXVlc3Qtb3B0aW9ucyc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBLYWx0dXJhUmVxdWVzdEFyZ3MgZXh0ZW5kcyBLYWx0dXJhUmVxdWVzdEJhc2VBcmdzIHsgfVxuXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBLYWx0dXJhUmVxdWVzdDxUPiBleHRlbmRzIEthbHR1cmFSZXF1ZXN0QmFzZSB7XG5cbiAgcHJpdmF0ZSBfX3JlcXVlc3RPcHRpb25zX186IEthbHR1cmFSZXF1ZXN0T3B0aW9ucztcbiAgcHJvdGVjdGVkIGNhbGxiYWNrOiAocmVzcG9uc2U6IEthbHR1cmFSZXNwb25zZTxUPikgPT4gdm9pZDtcbiAgcHJpdmF0ZSByZXNwb25zZVR5cGU6IHN0cmluZztcbiAgcHJpdmF0ZSByZXNwb25zZVN1YlR5cGU6IHN0cmluZztcbiAgcHJvdGVjdGVkIF9yZXNwb25zZUNvbnN0cnVjdG9yOiB7IG5ldygpOiBLYWx0dXJhT2JqZWN0QmFzZSB9OyAvLyBOT1RJQ0U6IHRoaXMgcHJvcGVydHkgaXMgbm90IHVzZWQgZGlyZWN0bHkuIEl0IGlzIGhlcmUgdG8gZm9yY2UgaW1wb3J0IG9mIHRoYXQgdHlwZSBmb3IgYnVuZGxpbmcgaXNzdWVzLlxuXG4gIGNvbnN0cnVjdG9yKGRhdGE6IEthbHR1cmFSZXF1ZXN0QmFzZUFyZ3MsIHsgcmVzcG9uc2VUeXBlLCByZXNwb25zZVN1YlR5cGUsIHJlc3BvbnNlQ29uc3RydWN0b3IgfTogeyByZXNwb25zZVR5cGU6IHN0cmluZywgcmVzcG9uc2VTdWJUeXBlPzogc3RyaW5nLCByZXNwb25zZUNvbnN0cnVjdG9yOiB7IG5ldygpOiBLYWx0dXJhT2JqZWN0QmFzZSB9IH0pIHtcbiAgICBzdXBlcihkYXRhKTtcbiAgICB0aGlzLnJlc3BvbnNlU3ViVHlwZSA9IHJlc3BvbnNlU3ViVHlwZTtcbiAgICB0aGlzLnJlc3BvbnNlVHlwZSA9IHJlc3BvbnNlVHlwZTtcbiAgICB0aGlzLl9yZXNwb25zZUNvbnN0cnVjdG9yID0gcmVzcG9uc2VDb25zdHJ1Y3RvcjtcbiAgfVxuXG4gIHNldENvbXBsZXRpb24oY2FsbGJhY2s6IChyZXNwb25zZTogS2FsdHVyYVJlc3BvbnNlPFQ+KSA9PiB2b2lkKTogdGhpcyB7XG4gICAgdGhpcy5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJpdmF0ZSBfdW53cmFwUmVzcG9uc2UocmVzcG9uc2U6IGFueSk6IGFueSB7XG4gICAgaWYgKGVudmlyb25tZW50LnJlc3BvbnNlLm5lc3RlZFJlc3BvbnNlKSB7XG4gICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuaGFzT3duUHJvcGVydHkoJ3Jlc3VsdCcpKSB7XG4gICAgICAgIGlmIChyZXNwb25zZS5yZXN1bHQuaGFzT3duUHJvcGVydHkoJ2Vycm9yJykpIHtcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0LmVycm9yO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuaGFzT3duUHJvcGVydHkoJ2Vycm9yJykpIHtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmVycm9yO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIGhhbmRsZVJlc3BvbnNlKHJlc3BvbnNlOiBhbnkpOiBLYWx0dXJhUmVzcG9uc2U8VD4ge1xuICAgIGxldCByZXNwb25zZVJlc3VsdDogYW55O1xuICAgIGxldCByZXNwb25zZUVycm9yOiBhbnk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdW53cmFwcGVkUmVzcG9uc2UgPSB0aGlzLl91bndyYXBSZXNwb25zZShyZXNwb25zZSk7XG4gICAgICBsZXQgcmVzcG9uc2VPYmplY3QgPSBudWxsO1xuXG4gICAgICBpZiAodW53cmFwcGVkUmVzcG9uc2UpIHtcbiAgICAgICAgaWYgKHVud3JhcHBlZFJlc3BvbnNlIGluc3RhbmNlb2YgS2FsdHVyYUFQSUV4Y2VwdGlvbikge1xuICAgICAgICAgIC8vIGhhbmRsZSBzaXR1YXRpb24gd2hlbiBtdWx0aSByZXF1ZXN0IHByb3BhZ2F0ZWQgYWN0dWFsIGFwaSBleGNlcHRpb24gb2JqZWN0LlxuICAgICAgICAgIHJlc3BvbnNlT2JqZWN0ID0gdW53cmFwcGVkUmVzcG9uc2U7XG4gICAgICAgIH0gZWxzZSBpZiAodW53cmFwcGVkUmVzcG9uc2Uub2JqZWN0VHlwZSA9PT0gJ0thbHR1cmFBUElFeGNlcHRpb24nKSB7XG4gICAgICAgICAgcmVzcG9uc2VPYmplY3QgPSBuZXcgS2FsdHVyYUFQSUV4Y2VwdGlvbihcbiAgICAgICAgICAgIHVud3JhcHBlZFJlc3BvbnNlLm1lc3NhZ2UsXG4gICAgICAgICAgICB1bndyYXBwZWRSZXNwb25zZS5jb2RlLFxuICAgICAgICAgICAgdW53cmFwcGVkUmVzcG9uc2UuYXJnc1xuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzcG9uc2VPYmplY3QgPSBzdXBlci5fcGFyc2VSZXNwb25zZVByb3BlcnR5KFxuICAgICAgICAgICAgXCJcIixcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogdGhpcy5yZXNwb25zZVR5cGUsXG4gICAgICAgICAgICAgIHN1YlR5cGU6IHRoaXMucmVzcG9uc2VTdWJUeXBlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdW53cmFwcGVkUmVzcG9uc2VcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghcmVzcG9uc2VPYmplY3QgJiYgdGhpcy5yZXNwb25zZVR5cGUgIT09ICd2Jykge1xuICAgICAgICByZXNwb25zZUVycm9yID0gbmV3IEthbHR1cmFBUElFeGNlcHRpb24oYHNlcnZlciByZXNwb25zZSBpcyB1bmRlZmluZWQsIGV4cGVjdGVkICcke3RoaXMucmVzcG9uc2VUeXBlfSAvICR7dGhpcy5yZXNwb25zZVN1YlR5cGV9J2AsICdjbGllbnQ6OnJlc3BvbnNlX3R5cGVfZXJyb3InLCBudWxsKTtcbiAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2VPYmplY3QgaW5zdGFuY2VvZiBLYWx0dXJhQVBJRXhjZXB0aW9uKSB7XG4gICAgICAgIC8vIGdvdCBleGNlcHRpb24gZnJvbSBsaWJyYXJ5XG4gICAgICAgIHJlc3BvbnNlRXJyb3IgPSByZXNwb25zZU9iamVjdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3BvbnNlUmVzdWx0ID0gcmVzcG9uc2VPYmplY3Q7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHJlc3BvbnNlRXJyb3IgPSBuZXcgS2FsdHVyYUFQSUV4Y2VwdGlvbihleC5tZXNzYWdlLCAnY2xpZW50OjpnZW5lcmFsX2Vycm9yJywgbnVsbCk7XG4gICAgfVxuXG5cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgS2FsdHVyYVJlc3BvbnNlPFQ+KHJlc3BvbnNlUmVzdWx0LCByZXNwb25zZUVycm9yKTtcblxuICAgIGlmICh0aGlzLmNhbGxiYWNrKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmNhbGxiYWNrKHJlc3VsdCk7XG4gICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICAvLyBkbyBub3RoaW5nIGJ5IGRlc2lnblxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzZXRSZXF1ZXN0T3B0aW9ucyhvcHRpb25BcmdzOiBLYWx0dXJhUmVxdWVzdE9wdGlvbnNBcmdzKTogdGhpcztcbiAgc2V0UmVxdWVzdE9wdGlvbnMob3B0aW9uczogS2FsdHVyYVJlcXVlc3RPcHRpb25zKTogdGhpcztcbiAgc2V0UmVxdWVzdE9wdGlvbnMoYXJnOiBLYWx0dXJhUmVxdWVzdE9wdGlvbnNBcmdzIHwgS2FsdHVyYVJlcXVlc3RPcHRpb25zKTogdGhpcyB7XG4gICAgdGhpcy5fX3JlcXVlc3RPcHRpb25zX18gPSBhcmcgaW5zdGFuY2VvZiBLYWx0dXJhUmVxdWVzdE9wdGlvbnMgPyBhcmcgOiBuZXcgS2FsdHVyYVJlcXVlc3RPcHRpb25zKGFyZyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBnZXRSZXF1ZXN0T3B0aW9ucygpOiBLYWx0dXJhUmVxdWVzdE9wdGlvbnMge1xuICAgIHJldHVybiB0aGlzLl9fcmVxdWVzdE9wdGlvbnNfXztcbiAgfVxuXG4gIGJ1aWxkUmVxdWVzdChkZWZhdWx0UmVxdWVzdE9wdGlvbnM6IEthbHR1cmFSZXF1ZXN0T3B0aW9ucyk6IHt9IHtcbiAgICBjb25zdCByZXF1ZXN0T3B0aW9uc09iamVjdCA9IHRoaXMuX19yZXF1ZXN0T3B0aW9uc19fID8gdGhpcy5fX3JlcXVlc3RPcHRpb25zX18udG9SZXF1ZXN0T2JqZWN0KCkgOiB7fTtcbiAgICBjb25zdCBkZWZhdWx0UmVxdWVzdE9wdGlvbnNPYmplY3QgPSBkZWZhdWx0UmVxdWVzdE9wdGlvbnMgPyBkZWZhdWx0UmVxdWVzdE9wdGlvbnMudG9SZXF1ZXN0T2JqZWN0KCkgOiB7fTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKFxuICAgICAge30sXG4gICAgICBkZWZhdWx0UmVxdWVzdE9wdGlvbnNPYmplY3QsXG4gICAgICByZXF1ZXN0T3B0aW9uc09iamVjdCxcbiAgICAgIHRoaXMudG9SZXF1ZXN0T2JqZWN0KClcbiAgICApO1xuICB9XG59XG4iXX0=