gooddata-js v13.5.0

File: src/execution.ts

                        // (C) 2007-2018 GoodData Corporation
                        import { ExperimentalExecutionsModule } from "./execution/experimental-executions";
                        import { AttributesMapLoaderModule } from "./utils/attributesMapLoader";
                        import { ExecuteAfmModule } from "./execution/execute-afm";
                        import { XhrModule } from "./xhr";
                        import { MetadataModule } from "./metadata";
                        
                        /**
                         * Execution endpoints
                         *
                         * @module execution
                         * @class execution
                         *
                         */
                        export class ExecutionModule {
                            public readonly executeAfm: ExecuteAfmModule["executeAfm"];
                            public readonly getExecutionResponse: ExecuteAfmModule["getExecutionResponse"];
                        
                            public readonly _executeVisualization: ExecuteAfmModule["_executeVisualization"];
                            public readonly _getVisExecutionResponse: ExecuteAfmModule["_getVisExecutionResponse"];
                        
                            public readonly getPartialExecutionResult: ExecuteAfmModule["getPartialExecutionResult"];
                            public readonly getExecutionResult: ExecuteAfmModule["getExecutionResult"];
                            private readonly executeAfmModule: ExecuteAfmModule;
                            private readonly xhr: XhrModule;
                            private readonly md: MetadataModule;
                        
                            constructor(xhr: XhrModule, md: MetadataModule) {
                                this.executeAfmModule = new ExecuteAfmModule(xhr);
                                this.executeAfm = this.executeAfmModule.executeAfm.bind(this.executeAfmModule);
                                this.getExecutionResponse = this.executeAfmModule.getExecutionResponse.bind(this.executeAfmModule);
                                this._executeVisualization = this.executeAfmModule._executeVisualization.bind(this.executeAfmModule);
                                this._getVisExecutionResponse = this.executeAfmModule._getVisExecutionResponse.bind(
                                    this.executeAfmModule,
                                );
                                this.getPartialExecutionResult = this.executeAfmModule.getPartialExecutionResult.bind(
                                    this.executeAfmModule,
                                );
                                this.getExecutionResult = this.executeAfmModule.getExecutionResult.bind(this.executeAfmModule);
                                this.xhr = xhr;
                                this.md = md;
                            }
                        
                            public getData(projectId: string, columns: any[], executionConfiguration: any = {}, settings: any = {}) {
                                return this.getExperimentalExecutionsModule().getData(
                                    projectId,
                                    columns,
                                    executionConfiguration,
                                    settings,
                                );
                            }
                        
                            public mdToExecutionDefinitionsAndColumns(projectId: string, mdObj: any, options = {}) {
                                return this.getExperimentalExecutionsModule().mdToExecutionDefinitionsAndColumns(
                                    projectId,
                                    mdObj,
                                    options,
                                );
                            }
                        
                            private getExperimentalExecutionsModule() {
                                const loaderModule = new AttributesMapLoaderModule(this.md);
                        
                                return new ExperimentalExecutionsModule(this.xhr, loaderModule.loadAttributesMap.bind(loaderModule));
                            }
                        }