@gooddata/gooddata-js
Version:
GoodData JavaScript SDK
49 lines (48 loc) • 2.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var ExecuteAfmAdapter_1 = require("./ExecuteAfmAdapter");
var toAfmResultSpec_1 = require("../converters/toAfmResultSpec");
var AfmUtils_1 = require("../utils/AfmUtils");
var package_json_1 = require("../../../package.json");
function defaultExecuteAdapterFactory(sdk, projectId) {
return new ExecuteAfmAdapter_1.ExecuteAfmAdapter(sdk, projectId);
}
var UriAdapter = /** @class */ (function () {
function UriAdapter(sdk, projectId, executeAdapterFactory) {
if (executeAdapterFactory === void 0) { executeAdapterFactory = defaultExecuteAdapterFactory; }
this.projectId = projectId;
this.executeAdapterFactory = executeAdapterFactory;
this.sdk = sdk.clone();
this.sdk.config.setJsPackage("@gooddata/data-layer", package_json_1.version);
}
UriAdapter.prototype.createDataSource = function (sourceParams) {
var _this = this;
return this.fetchVisualizationObject(sourceParams.uri).then(function (visualizationObject) {
var content = visualizationObject.visualizationObject.content;
var _a = toAfmResultSpec_1.toAfmResultSpec(content), afm = _a.afm, resultSpec = _a.resultSpec;
var afmWithAttributeFilters = AfmUtils_1.appendFilters(afm, sourceParams.attributeFilters || [], sourceParams.dateFilter);
var executeAdapter = _this.executeAdapterFactory(_this.sdk, _this.projectId);
var execution = {
execution: {
afm: afmWithAttributeFilters,
resultSpec: resultSpec,
},
};
return executeAdapter.createDataSource(execution);
});
};
UriAdapter.prototype.fetchVisualizationObject = function (uri) {
var _this = this;
if (uri === this.uri && this.visualizationObject) {
return Promise.resolve(this.visualizationObject);
}
return this.sdk.xhr.get(uri).then(function (response) {
var visObject = response.data;
_this.uri = uri;
_this.visualizationObject = visObject;
return visObject;
});
};
return UriAdapter;
}());
exports.UriAdapter = UriAdapter;