@kaltura-ng/kaltura-client
Version:
Kaltura Typescript client
92 lines • 4.02 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { KalturaResponse } from "./kaltura-response";
import { KalturaRequestBase } from "./kaltura-request-base";
import { KalturaAPIException } from './kaltura-api-exception';
var KalturaRequest = (function (_super) {
__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 response is object without 'objectType' property and with 'result' property -> it is ott response
if (response && typeof response === 'object' && !response.objectType && response.result) {
// if response.result is object without 'objectType' property and with 'error' property -> it is ott error response
if (typeof response.result === 'object' && !response.result.objectType && response.result.error) {
return response.result.error;
}
else {
return response.result;
}
}
else {
return response;
}
};
KalturaRequest.prototype.handleResponse = function (response) {
var responseResult;
var responseError;
try {
var unwrappedResponse = this._unwrapResponse(response);
var responseObject = null;
if (unwrappedResponse) {
if (unwrappedResponse.objectType === 'KalturaAPIException') {
responseObject = _super.prototype._parseResponseProperty.call(this, "", {
type: 'o',
subType: 'KalturaAPIException'
}, unwrappedResponse);
}
else {
responseObject = _super.prototype._parseResponseProperty.call(this, "", {
type: this.responseType,
subType: this.responseSubType
}, unwrappedResponse);
}
}
if (!responseObject && this.responseType !== 'v') {
responseError = new KalturaAPIException('client::response_type_error', "server response is undefined, expected '" + this.responseType + " / " + this.responseSubType + "'");
}
else if (responseObject instanceof KalturaAPIException) {
// got exception from library
responseError = responseObject;
}
else {
responseResult = responseObject;
}
}
catch (ex) {
// TODO [kmc] should implement
responseError = new KalturaAPIException('client::general_error', ex.message);
}
var result = new KalturaResponse(responseResult, responseError);
if (this.callback) {
try {
this.callback(result);
}
catch (ex) {
// do nothing by design
}
}
return result;
};
return KalturaRequest;
}(KalturaRequestBase));
export { KalturaRequest };
//# sourceMappingURL=kaltura-request.js.map