UNPKG

@gooddata/gooddata-js

Version:
49 lines (48 loc) 2.26 kB
"use strict"; 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;