@gooddata/sdk-backend-tiger
Advanced tools
Comparing version 8.0.0-alpha.3 to 8.0.0-alpha.4
@@ -49,11 +49,11 @@ export declare namespace ExecuteAFM { | ||
interface IArithmeticMeasure { | ||
measureIdentifiers: Identifier[]; | ||
measureIdentifiers: ILocalIdentifierQualifier[]; | ||
operator: ArithmeticMeasureOperator; | ||
} | ||
interface IPopMeasure { | ||
measureIdentifier: Identifier; | ||
measureIdentifier: ILocalIdentifierQualifier; | ||
popAttribute: ObjQualifier; | ||
} | ||
interface IPreviousPeriodMeasure { | ||
measureIdentifier: Identifier; | ||
measureIdentifier: ILocalIdentifierQualifier; | ||
dateDataSets: IPreviousPeriodDateDataSet[]; | ||
@@ -68,4 +68,10 @@ } | ||
interface IObjIdentifierQualifier { | ||
identifier: string; | ||
identifier: { | ||
id: string; | ||
type: string; | ||
}; | ||
} | ||
interface ILocalIdentifierQualifier { | ||
localIdentifier: string; | ||
} | ||
type CompatibilityFilter = IExpressionFilter | FilterItem; | ||
@@ -110,10 +116,10 @@ type FilterItem = DateFilterItem | AttributeFilterItem; | ||
interface ITotalItem { | ||
measureIdentifier: Identifier; | ||
measureIdentifier: ILocalIdentifierQualifier; | ||
type: TotalType; | ||
attributeIdentifier: Identifier; | ||
attributeIdentifier: ILocalIdentifierQualifier; | ||
} | ||
type TotalType = "sum" | "avg" | "max" | "min" | "nat" | "med"; | ||
interface INativeTotalItem { | ||
measureIdentifier: Identifier; | ||
attributeIdentifiers: Identifier[]; | ||
measureIdentifier: ILocalIdentifierQualifier; | ||
attributeIdentifiers: ILocalIdentifierQualifier[]; | ||
} | ||
@@ -129,3 +135,3 @@ interface IDimension { | ||
direction: SortDirection; | ||
attributeIdentifier: Identifier; | ||
attributeIdentifier: ILocalIdentifierQualifier; | ||
aggregation?: "sum"; | ||
@@ -143,3 +149,3 @@ }; | ||
attributeLocatorItem: { | ||
attributeIdentifier: Identifier; | ||
attributeIdentifier: ILocalIdentifierQualifier; | ||
element: string; | ||
@@ -150,5 +156,5 @@ }; | ||
measureLocatorItem: { | ||
measureIdentifier: Identifier; | ||
measureIdentifier: ILocalIdentifierQualifier; | ||
}; | ||
} | ||
} |
"use strict"; | ||
// (C) 2019 GoodData Corporation | ||
// (C) 2019-2020 GoodData Corporation | ||
Object.defineProperty(exports, "__esModule", { value: true }); |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
// (C) 2007-2019 GoodData Corporation | ||
// (C) 2007-2020 GoodData Corporation | ||
var sdk_backend_spi_1 = require("@gooddata/sdk-backend-spi"); | ||
var sdk_model_1 = require("@gooddata/sdk-model"); | ||
var ObjRefConverter_1 = require("./ObjRefConverter"); | ||
function convertPositiveFilter(filter) { | ||
var attributeRef = filter.positiveAttributeFilter.displayForm; | ||
var displayFormRef = filter.positiveAttributeFilter.displayForm; | ||
var attributeElements = filter.positiveAttributeFilter.in; | ||
if (sdk_model_1.isUriRef(attributeRef)) { | ||
throw new sdk_backend_spi_1.NotSupported("Tiger backend does not allow specifying attributes by URI."); | ||
} | ||
if (!sdk_model_1.isAttributeElementsByValue(attributeElements)) { | ||
@@ -17,3 +15,3 @@ throw new sdk_backend_spi_1.NotSupported("Tiger backend only allows specifying attribute elements by value"); | ||
positiveAttributeFilter: { | ||
displayForm: attributeRef, | ||
displayForm: ObjRefConverter_1.toDisplayFormQualifier(displayFormRef), | ||
in: attributeElements, | ||
@@ -27,7 +25,4 @@ }, | ||
} | ||
var attributeRef = filter.negativeAttributeFilter.displayForm; | ||
var displayFormRef = filter.negativeAttributeFilter.displayForm; | ||
var attributeElements = filter.negativeAttributeFilter.notIn; | ||
if (sdk_model_1.isUriRef(attributeRef)) { | ||
throw new sdk_backend_spi_1.NotSupported("Tiger backend does not allow specifying attributes by URI."); | ||
} | ||
if (!sdk_model_1.isAttributeElementsByValue(attributeElements)) { | ||
@@ -38,3 +33,3 @@ throw new sdk_backend_spi_1.NotSupported("Tiger backend only allows specifying attribute elements by value"); | ||
negativeAttributeFilter: { | ||
displayForm: attributeRef, | ||
displayForm: ObjRefConverter_1.toDisplayFormQualifier(displayFormRef), | ||
notIn: attributeElements, | ||
@@ -56,8 +51,5 @@ }, | ||
var dataSetRef = absoluteDateFilter.dataSet; | ||
if (sdk_model_1.isUriRef(dataSetRef)) { | ||
throw new sdk_backend_spi_1.NotSupported("Tiger backend does not allow specifying date data set by URI."); | ||
} | ||
return { | ||
absoluteDateFilter: { | ||
dataSet: dataSetRef, | ||
dataSet: ObjRefConverter_1.toDateDataSetQualifier(dataSetRef), | ||
from: String(absoluteDateFilter.from), | ||
@@ -75,8 +67,5 @@ to: String(absoluteDateFilter.to), | ||
var dataSetRef = relativeDateFilter.dataSet; | ||
if (sdk_model_1.isUriRef(dataSetRef)) { | ||
throw new sdk_backend_spi_1.NotSupported("Tiger backend does not allow specifying date data set by URI."); | ||
} | ||
return { | ||
relativeDateFilter: { | ||
dataSet: dataSetRef, | ||
dataSet: ObjRefConverter_1.toDateDataSetQualifier(dataSetRef), | ||
granularity: relativeDateFilter.granularity, | ||
@@ -83,0 +72,0 @@ from: Number(relativeDateFilter.from), |
@@ -14,6 +14,6 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
// (C) 2007-2018 GoodData Corporation | ||
var sdk_backend_spi_1 = require("@gooddata/sdk-backend-spi"); | ||
// (C) 2007-2020 GoodData Corporation | ||
var sdk_model_1 = require("@gooddata/sdk-model"); | ||
var FilterConverter_1 = require("./FilterConverter"); | ||
var ObjRefConverter_1 = require("./ObjRefConverter"); | ||
var compact = require("lodash/compact"); | ||
@@ -83,7 +83,4 @@ var get = require("lodash/get"); | ||
var measureRef = measureDefinition.item; | ||
if (sdk_model_1.isUriRef(measureRef)) { | ||
throw new sdk_backend_spi_1.NotSupported("Tiger backend does not allow specifying measures by URI"); | ||
} | ||
return { | ||
measure: __assign(__assign(__assign({ item: measureRef }, filtersProp), aggregationProp), computeRatioProp), | ||
measure: __assign(__assign(__assign({ item: ObjRefConverter_1.toFactQualifier(measureRef) }, filtersProp), aggregationProp), computeRatioProp), | ||
}; | ||
@@ -94,9 +91,6 @@ } | ||
var attributeRef = popMeasureDefinition.popAttribute; | ||
if (sdk_model_1.isUriRef(attributeRef)) { | ||
throw new sdk_backend_spi_1.NotSupported("Tiger backend does not allow specifying attributes by URI"); | ||
} | ||
return { | ||
popMeasure: { | ||
measureIdentifier: popMeasureDefinition.measureIdentifier, | ||
popAttribute: attributeRef, | ||
measureIdentifier: ObjRefConverter_1.toLocalIdentifier(popMeasureDefinition.measureIdentifier), | ||
popAttribute: ObjRefConverter_1.toDisplayFormQualifier(attributeRef), | ||
}, | ||
@@ -109,10 +103,7 @@ }; | ||
previousPeriodMeasure: { | ||
measureIdentifier: previousPeriodMeasure.measureIdentifier, | ||
measureIdentifier: ObjRefConverter_1.toLocalIdentifier(previousPeriodMeasure.measureIdentifier), | ||
dateDataSets: previousPeriodMeasure.dateDataSets.map(function (dateDataSet) { | ||
var dataSetRef = dateDataSet.dataSet; | ||
if (sdk_model_1.isUriRef(dataSetRef)) { | ||
throw new sdk_backend_spi_1.NotSupported("Tiger backend does nto allow specifying date data sets by URI."); | ||
} | ||
return { | ||
dataSet: dataSetRef, | ||
dataSet: ObjRefConverter_1.toDateDataSetQualifier(dataSetRef), | ||
periodsAgo: dateDataSet.periodsAgo, | ||
@@ -128,3 +119,3 @@ }; | ||
arithmeticMeasure: { | ||
measureIdentifiers: arithmeticMeasure.measureIdentifiers.slice(), | ||
measureIdentifiers: arithmeticMeasure.measureIdentifiers.map(ObjRefConverter_1.toLocalIdentifier), | ||
operator: arithmeticMeasure.operator, | ||
@@ -131,0 +122,0 @@ }, |
@@ -0,3 +1,3 @@ | ||
import { IExecutionDefinition } from "@gooddata/sdk-model"; | ||
import { ExecuteAFM } from "../gd-tiger-model/ExecuteAFM"; | ||
import { IExecutionDefinition } from "@gooddata/sdk-model"; | ||
/** | ||
@@ -4,0 +4,0 @@ * Converts execution definition to AFM Execution |
@@ -14,9 +14,9 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
// (C) 2007-2018 GoodData Corporation | ||
// (C) 2007-2020 GoodData Corporation | ||
var compact = require("lodash/compact"); | ||
var isEmpty = require("lodash/isEmpty"); | ||
var sdk_model_1 = require("@gooddata/sdk-model"); | ||
var FilterConverter_1 = require("./FilterConverter"); | ||
var MeasureConverter_1 = require("./MeasureConverter"); | ||
var sdk_model_1 = require("@gooddata/sdk-model"); | ||
var sdk_backend_spi_1 = require("@gooddata/sdk-backend-spi"); | ||
var isEmpty = require("lodash/isEmpty"); | ||
var ObjRefConverter_1 = require("./ObjRefConverter"); | ||
function convertAttribute(attribute, idx) { | ||
@@ -26,6 +26,3 @@ var alias = attribute.attribute.alias; | ||
var displayFromRef = attribute.attribute.displayForm; | ||
if (sdk_model_1.isUriRef(displayFromRef)) { | ||
throw new sdk_backend_spi_1.NotSupported("Tiger backend does not allow specifying display forms by URI"); | ||
} | ||
return __assign({ displayForm: displayFromRef, localIdentifier: attribute.attribute.localIdentifier || "a" + (idx + 1) }, aliasProp); | ||
return __assign({ displayForm: ObjRefConverter_1.toDisplayFormQualifier(displayFromRef), localIdentifier: attribute.attribute.localIdentifier || "a" + (idx + 1) }, aliasProp); | ||
} | ||
@@ -65,6 +62,7 @@ function convertAFM(def) { | ||
.filter(sdk_model_1.isAttribute) | ||
.map(sdk_model_1.attributeLocalId); | ||
.map(sdk_model_1.attributeLocalId) | ||
.map(ObjRefConverter_1.toLocalIdentifier); | ||
// and create native total such, that it rolls up all those attributes | ||
return { | ||
measureIdentifier: t.measureIdentifier, | ||
measureIdentifier: ObjRefConverter_1.toLocalIdentifier(t.measureIdentifier), | ||
attributeIdentifiers: rollupAttributes, | ||
@@ -75,21 +73,10 @@ }; | ||
function convertDimensions(def) { | ||
def.dimensions.forEach(function (dim) { | ||
dim.itemIdentifiers.forEach(function (item) { | ||
if (item === sdk_model_1.MeasureGroupIdentifier) { | ||
return; | ||
} | ||
var attr = sdk_model_1.attributesFind(def.attributes, item); | ||
if (!attr) { | ||
throw new Error("invalid invariant: dimension specifies undefined attr " + item); | ||
} | ||
var attrRef = attr.attribute.displayForm; | ||
if (sdk_model_1.isUriRef(attrRef)) { | ||
throw new sdk_backend_spi_1.NotSupported("tiger does not support attributes specified by uri"); | ||
} | ||
}); | ||
if (dim.totals) { | ||
throw new sdk_backend_spi_1.NotSupported("Tiger backend does not support totals."); | ||
return def.dimensions.map(function (dim) { | ||
if (!isEmpty(dim.totals)) { | ||
throw new Error("Tiger backend does not support totals."); | ||
} | ||
return { | ||
itemIdentifiers: dim.itemIdentifiers, | ||
}; | ||
}); | ||
return def.dimensions; | ||
} | ||
@@ -96,0 +83,0 @@ function convertResultSpec(def) { |
{ | ||
"name": "@gooddata/sdk-backend-tiger", | ||
"version": "8.0.0-alpha.3", | ||
"version": "8.0.0-alpha.4", | ||
"author": "GoodData", | ||
@@ -33,4 +33,4 @@ "description": "GoodData Backend SPI implementation for the Tiger platform", | ||
"dependencies": { | ||
"@gooddata/sdk-backend-spi": "^8.0.0-alpha.3", | ||
"@gooddata/sdk-model": "^8.0.0-alpha.3", | ||
"@gooddata/sdk-backend-spi": "^8.0.0-alpha.4", | ||
"@gooddata/sdk-model": "^8.0.0-alpha.4", | ||
"axios": "^0.19.0", | ||
@@ -37,0 +37,0 @@ "lodash": "^4.17.15", |
@@ -1,2 +0,2 @@ | ||
// (C) 2019 GoodData Corporation | ||
// (C) 2019-2020 GoodData Corporation | ||
@@ -70,3 +70,3 @@ export namespace ExecuteAFM { | ||
export interface IArithmeticMeasure { | ||
measureIdentifiers: Identifier[]; | ||
measureIdentifiers: ILocalIdentifierQualifier[]; | ||
operator: ArithmeticMeasureOperator; | ||
@@ -76,3 +76,3 @@ } | ||
export interface IPopMeasure { | ||
measureIdentifier: Identifier; | ||
measureIdentifier: ILocalIdentifierQualifier; | ||
popAttribute: ObjQualifier; | ||
@@ -82,3 +82,3 @@ } | ||
export interface IPreviousPeriodMeasure { | ||
measureIdentifier: Identifier; | ||
measureIdentifier: ILocalIdentifierQualifier; | ||
dateDataSets: IPreviousPeriodDateDataSet[]; | ||
@@ -96,5 +96,12 @@ } | ||
export interface IObjIdentifierQualifier { | ||
identifier: string; | ||
identifier: { | ||
id: string; | ||
type: string; | ||
}; | ||
} | ||
export interface ILocalIdentifierQualifier { | ||
localIdentifier: string; | ||
} | ||
export type CompatibilityFilter = IExpressionFilter | FilterItem; | ||
@@ -148,5 +155,5 @@ export type FilterItem = DateFilterItem | AttributeFilterItem; | ||
export interface ITotalItem { | ||
measureIdentifier: Identifier; | ||
measureIdentifier: ILocalIdentifierQualifier; | ||
type: TotalType; | ||
attributeIdentifier: Identifier; | ||
attributeIdentifier: ILocalIdentifierQualifier; | ||
} | ||
@@ -157,4 +164,4 @@ | ||
export interface INativeTotalItem { | ||
measureIdentifier: Identifier; | ||
attributeIdentifiers: Identifier[]; | ||
measureIdentifier: ILocalIdentifierQualifier; | ||
attributeIdentifiers: ILocalIdentifierQualifier[]; | ||
} | ||
@@ -173,3 +180,3 @@ | ||
direction: SortDirection; | ||
attributeIdentifier: Identifier; | ||
attributeIdentifier: ILocalIdentifierQualifier; | ||
aggregation?: "sum"; | ||
@@ -190,3 +197,3 @@ }; | ||
attributeLocatorItem: { | ||
attributeIdentifier: Identifier; | ||
attributeIdentifier: ILocalIdentifierQualifier; | ||
element: string; | ||
@@ -198,5 +205,5 @@ }; | ||
measureLocatorItem: { | ||
measureIdentifier: Identifier; | ||
measureIdentifier: ILocalIdentifierQualifier; | ||
}; | ||
} | ||
} |
@@ -1,2 +0,2 @@ | ||
// (C) 2007-2019 GoodData Corporation | ||
// (C) 2007-2020 GoodData Corporation | ||
import { NotSupported } from "@gooddata/sdk-backend-spi"; | ||
@@ -16,14 +16,10 @@ import { | ||
isRelativeDateFilter, | ||
isUriRef, | ||
} from "@gooddata/sdk-model"; | ||
import { ExecuteAFM } from "../gd-tiger-model/ExecuteAFM"; | ||
import { toDateDataSetQualifier, toDisplayFormQualifier } from "./ObjRefConverter"; | ||
function convertPositiveFilter(filter: IPositiveAttributeFilter): ExecuteAFM.IPositiveAttributeFilter { | ||
const attributeRef = filter.positiveAttributeFilter.displayForm; | ||
const displayFormRef = filter.positiveAttributeFilter.displayForm; | ||
const attributeElements = filter.positiveAttributeFilter.in; | ||
if (isUriRef(attributeRef)) { | ||
throw new NotSupported("Tiger backend does not allow specifying attributes by URI."); | ||
} | ||
if (!isAttributeElementsByValue(attributeElements)) { | ||
@@ -35,3 +31,3 @@ throw new NotSupported("Tiger backend only allows specifying attribute elements by value"); | ||
positiveAttributeFilter: { | ||
displayForm: attributeRef, | ||
displayForm: toDisplayFormQualifier(displayFormRef), | ||
in: attributeElements, | ||
@@ -47,9 +43,5 @@ }, | ||
const attributeRef = filter.negativeAttributeFilter.displayForm; | ||
const displayFormRef = filter.negativeAttributeFilter.displayForm; | ||
const attributeElements = filter.negativeAttributeFilter.notIn; | ||
if (isUriRef(attributeRef)) { | ||
throw new NotSupported("Tiger backend does not allow specifying attributes by URI."); | ||
} | ||
if (!isAttributeElementsByValue(attributeElements)) { | ||
@@ -61,3 +53,3 @@ throw new NotSupported("Tiger backend only allows specifying attribute elements by value"); | ||
negativeAttributeFilter: { | ||
displayForm: attributeRef, | ||
displayForm: toDisplayFormQualifier(displayFormRef), | ||
notIn: attributeElements, | ||
@@ -85,9 +77,5 @@ }, | ||
if (isUriRef(dataSetRef)) { | ||
throw new NotSupported("Tiger backend does not allow specifying date data set by URI."); | ||
} | ||
return { | ||
absoluteDateFilter: { | ||
dataSet: dataSetRef, | ||
dataSet: toDateDataSetQualifier(dataSetRef), | ||
from: String(absoluteDateFilter.from), | ||
@@ -108,9 +96,5 @@ to: String(absoluteDateFilter.to), | ||
if (isUriRef(dataSetRef)) { | ||
throw new NotSupported("Tiger backend does not allow specifying date data set by URI."); | ||
} | ||
return { | ||
relativeDateFilter: { | ||
dataSet: dataSetRef, | ||
dataSet: toDateDataSetQualifier(dataSetRef), | ||
granularity: relativeDateFilter.granularity, | ||
@@ -117,0 +101,0 @@ from: Number(relativeDateFilter.from), |
@@ -1,3 +0,2 @@ | ||
// (C) 2007-2018 GoodData Corporation | ||
import { NotSupported } from "@gooddata/sdk-backend-spi"; | ||
// (C) 2007-2020 GoodData Corporation | ||
import { | ||
@@ -14,3 +13,2 @@ IArithmeticMeasureDefinition, | ||
isPreviousPeriodMeasureDefinition, | ||
isUriRef, | ||
MeasureAggregation, | ||
@@ -20,2 +18,8 @@ } from "@gooddata/sdk-model"; | ||
import { convertVisualizationObjectFilter } from "./FilterConverter"; | ||
import { | ||
toDateDataSetQualifier, | ||
toFactQualifier, | ||
toDisplayFormQualifier, | ||
toLocalIdentifier, | ||
} from "./ObjRefConverter"; | ||
import compact = require("lodash/compact"); | ||
@@ -103,9 +107,5 @@ import get = require("lodash/get"); | ||
if (isUriRef(measureRef)) { | ||
throw new NotSupported("Tiger backend does not allow specifying measures by URI"); | ||
} | ||
return { | ||
measure: { | ||
item: measureRef, | ||
item: toFactQualifier(measureRef), | ||
...filtersProp, | ||
@@ -122,10 +122,6 @@ ...aggregationProp, | ||
if (isUriRef(attributeRef)) { | ||
throw new NotSupported("Tiger backend does not allow specifying attributes by URI"); | ||
} | ||
return { | ||
popMeasure: { | ||
measureIdentifier: popMeasureDefinition.measureIdentifier, | ||
popAttribute: attributeRef, | ||
measureIdentifier: toLocalIdentifier(popMeasureDefinition.measureIdentifier), | ||
popAttribute: toDisplayFormQualifier(attributeRef), | ||
}, | ||
@@ -142,12 +138,8 @@ }; | ||
previousPeriodMeasure: { | ||
measureIdentifier: previousPeriodMeasure.measureIdentifier, | ||
measureIdentifier: toLocalIdentifier(previousPeriodMeasure.measureIdentifier), | ||
dateDataSets: previousPeriodMeasure.dateDataSets.map(dateDataSet => { | ||
const dataSetRef = dateDataSet.dataSet; | ||
if (isUriRef(dataSetRef)) { | ||
throw new NotSupported("Tiger backend does nto allow specifying date data sets by URI."); | ||
} | ||
return { | ||
dataSet: dataSetRef, | ||
dataSet: toDateDataSetQualifier(dataSetRef), | ||
periodsAgo: dateDataSet.periodsAgo, | ||
@@ -166,3 +158,3 @@ }; | ||
arithmeticMeasure: { | ||
measureIdentifiers: arithmeticMeasure.measureIdentifiers.slice(), | ||
measureIdentifiers: arithmeticMeasure.measureIdentifiers.map(toLocalIdentifier), | ||
operator: arithmeticMeasure.operator, | ||
@@ -169,0 +161,0 @@ }, |
@@ -1,9 +0,6 @@ | ||
// (C) 2007-2018 GoodData Corporation | ||
// (C) 2007-2020 GoodData Corporation | ||
import compact = require("lodash/compact"); | ||
import { ExecuteAFM } from "../gd-tiger-model/ExecuteAFM"; | ||
import { convertVisualizationObjectFilter } from "./FilterConverter"; | ||
import { convertMeasure } from "./MeasureConverter"; | ||
import isEmpty = require("lodash/isEmpty"); | ||
import { | ||
attributeLocalId, | ||
attributesFind, | ||
bucketItems, | ||
@@ -13,10 +10,10 @@ bucketsFindAttribute, | ||
IAttribute, | ||
IExecutionDefinition, | ||
isAttribute, | ||
isUriRef, | ||
totalIsNative, | ||
MeasureGroupIdentifier, | ||
IExecutionDefinition, | ||
} from "@gooddata/sdk-model"; | ||
import { NotSupported } from "@gooddata/sdk-backend-spi"; | ||
import isEmpty = require("lodash/isEmpty"); | ||
import { ExecuteAFM } from "../gd-tiger-model/ExecuteAFM"; | ||
import { convertVisualizationObjectFilter } from "./FilterConverter"; | ||
import { convertMeasure } from "./MeasureConverter"; | ||
import { toDisplayFormQualifier, toLocalIdentifier } from "./ObjRefConverter"; | ||
@@ -28,8 +25,4 @@ function convertAttribute(attribute: IAttribute, idx: number): ExecuteAFM.IAttribute { | ||
if (isUriRef(displayFromRef)) { | ||
throw new NotSupported("Tiger backend does not allow specifying display forms by URI"); | ||
} | ||
return { | ||
displayForm: displayFromRef, | ||
displayForm: toDisplayFormQualifier(displayFromRef), | ||
localIdentifier: attribute.attribute.localIdentifier || `a${idx + 1}`, | ||
@@ -86,7 +79,8 @@ ...aliasProp, | ||
.filter(isAttribute) | ||
.map(attributeLocalId); | ||
.map(attributeLocalId) | ||
.map(toLocalIdentifier); | ||
// and create native total such, that it rolls up all those attributes | ||
return { | ||
measureIdentifier: t.measureIdentifier, | ||
measureIdentifier: toLocalIdentifier(t.measureIdentifier), | ||
attributeIdentifiers: rollupAttributes, | ||
@@ -98,26 +92,11 @@ }; | ||
function convertDimensions(def: IExecutionDefinition): ExecuteAFM.IDimension[] { | ||
def.dimensions.forEach(dim => { | ||
dim.itemIdentifiers.forEach(item => { | ||
if (item === MeasureGroupIdentifier) { | ||
return; | ||
} | ||
return def.dimensions.map(dim => { | ||
if (!isEmpty(dim.totals)) { | ||
throw new Error("Tiger backend does not support totals."); | ||
} | ||
const attr = attributesFind(def.attributes, item); | ||
if (!attr) { | ||
throw new Error(`invalid invariant: dimension specifies undefined attr ${item}`); | ||
} | ||
const attrRef = attr.attribute.displayForm; | ||
if (isUriRef(attrRef)) { | ||
throw new NotSupported("tiger does not support attributes specified by uri"); | ||
} | ||
}); | ||
if (dim.totals) { | ||
throw new NotSupported("Tiger backend does not support totals."); | ||
} | ||
return { | ||
itemIdentifiers: dim.itemIdentifiers, | ||
}; | ||
}); | ||
return def.dimensions; | ||
} | ||
@@ -124,0 +103,0 @@ |
115062
54
2814