@forestadmin/forestadmin-client
Version:
This package contains the logic to use the ForestAdmin API inside an agent.
57 lines • 5.49 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const chart_detector_1 = __importDefault(require("../utils/chart-detector"));
const context_variables_injector_1 = __importDefault(require("../utils/context-variables-injector"));
class ChartHandlerService {
constructor(contextVariablesInstantiator) {
this.contextVariablesInstantiator = contextVariablesInstantiator;
}
async getChartWithContextInjected({ userId, renderingId, chartRequest, }) {
const contextVariables = await this.contextVariablesInstantiator.buildContextVariables({
userId,
renderingId,
requestContextVariables: chartRequest.contextVariables,
});
const chart = { ...chartRequest };
delete chart.contextVariables;
if (chart_detector_1.default.isFilterableChart(chart)) {
chart.filter = context_variables_injector_1.default.injectContextInFilter(chart.filter, contextVariables);
}
if (chart_detector_1.default.isAggregatedChart(chart)) {
chart.aggregator = context_variables_injector_1.default.injectContextInValue(chart.aggregator, contextVariables);
}
if (chart_detector_1.default.isLineChart(chart)) {
chart.timeRange = context_variables_injector_1.default.injectContextInValue(chart.timeRange, contextVariables);
}
if (chart_detector_1.default.isObjectiveChart(chart)) {
chart.objective = Number(context_variables_injector_1.default.injectContextInValue(chart.objective, contextVariables));
}
if (chart_detector_1.default.isLeaderboardChart(chart)) {
chart.limit = Number(context_variables_injector_1.default.injectContextInValue(chart.limit, contextVariables));
}
return chart;
}
async getQueryForChart({ userId, renderingId, chartRequest, }) {
const contextVariables = await this.contextVariablesInstantiator.buildContextVariables({
userId,
renderingId,
requestContextVariables: chartRequest.contextVariables,
});
const contextVariablesUsed = {};
const replaceContextVariable = (contextVariableName) => {
const contextVariableRenamed = contextVariableName.replace(/\./g, '_');
contextVariablesUsed[contextVariableRenamed] = contextVariables.getValue(contextVariableName);
return `$${contextVariableRenamed}`;
};
const query = context_variables_injector_1.default.injectContextInValueCustom(chartRequest.query, replaceContextVariable);
return {
query,
contextVariables: contextVariablesUsed,
};
}
}
exports.default = ChartHandlerService;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jaGFydHMvY2hhcnQtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUtBLDZFQUFvRDtBQUNwRCxxR0FBMkU7QUFNM0UsTUFBcUIsbUJBQW1CO0lBQ3RDLFlBQTZCLDRCQUEwRDtRQUExRCxpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO0lBQUcsQ0FBQztJQUVwRixLQUFLLENBQUMsMkJBQTJCLENBQUMsRUFDdkMsTUFBTSxFQUNOLFdBQVcsRUFDWCxZQUFZLEdBS2I7UUFDQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLDRCQUE0QixDQUFDLHFCQUFxQixDQUFDO1lBQ3JGLE1BQU07WUFDTixXQUFXO1lBQ1gsdUJBQXVCLEVBQUUsWUFBWSxDQUFDLGdCQUFnQjtTQUN2RCxDQUFDLENBQUM7UUFFSCxNQUFNLEtBQUssR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLENBQUM7UUFDbEMsT0FBTyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7UUFFOUIsSUFBSSx3QkFBYSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsb0NBQXdCLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1NBQy9GO1FBRUQsSUFBSSx3QkFBYSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsb0NBQXdCLENBQUMsb0JBQW9CLENBQzlELEtBQUssQ0FBQyxVQUFVLEVBQ2hCLGdCQUFnQixDQUNqQixDQUFDO1NBQ0g7UUFFRCxJQUFJLHdCQUFhLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BDLEtBQUssQ0FBQyxTQUFTLEdBQUcsb0NBQXdCLENBQUMsb0JBQW9CLENBQzdELEtBQUssQ0FBQyxTQUFTLEVBQ2YsZ0JBQWdCLENBQ2pCLENBQUM7U0FDSDtRQUVELElBQUksd0JBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QyxLQUFLLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FDdEIsb0NBQXdCLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUNqRixDQUFDO1NBQ0g7UUFFRCxJQUFJLHdCQUFhLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0MsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQ2xCLG9DQUF3QixDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FDN0UsQ0FBQztTQUNIO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU0sS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQzVCLE1BQU0sRUFDTixXQUFXLEVBQ1gsWUFBWSxHQUtiO1FBQ0MsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxxQkFBcUIsQ0FBQztZQUNyRixNQUFNO1lBQ04sV0FBVztZQUNYLHVCQUF1QixFQUFFLFlBQVksQ0FBQyxnQkFBZ0I7U0FDdkQsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxvQkFBb0IsR0FBNEIsRUFBRSxDQUFDO1FBRXpELE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxtQkFBMkIsRUFBRSxFQUFFO1lBQzdELE1BQU0sc0JBQXNCLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2RSxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBRTlGLE9BQU8sSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FBQztRQUVGLE1BQU0sS0FBSyxHQUFHLG9DQUF3QixDQUFDLDBCQUEwQixDQUMvRCxZQUFZLENBQUMsS0FBSyxFQUNsQixzQkFBc0IsQ0FDdkIsQ0FBQztRQUVGLE9BQU87WUFDTCxLQUFLO1lBQ0wsZ0JBQWdCLEVBQUUsb0JBQW9CO1NBQ3ZDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF2RkQsc0NBdUZDIn0=
;