2023-05-02 17:08:03 +03:00
|
|
|
import { QueryBuilderData } from 'types/common/queryBuilder';
|
2023-05-10 19:40:27 +03:00
|
|
|
import {
|
|
|
|
|
MapFormula,
|
|
|
|
|
MapQuery,
|
|
|
|
|
MapQueryDataToApiResult,
|
|
|
|
|
} from 'types/common/queryBuilderMappers.types';
|
2023-05-02 17:08:03 +03:00
|
|
|
|
|
|
|
|
export const mapQueryDataToApi = (
|
|
|
|
|
data: QueryBuilderData,
|
|
|
|
|
): MapQueryDataToApiResult => {
|
|
|
|
|
const newLegendMap: Record<string, string> = {};
|
|
|
|
|
|
|
|
|
|
const preparedQueryData: MapQuery = data.queryData.reduce<MapQuery>(
|
|
|
|
|
(acc, query) => {
|
|
|
|
|
const newResult: MapQuery = {
|
|
|
|
|
...acc,
|
|
|
|
|
[query.queryName]: {
|
|
|
|
|
...query,
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
newLegendMap[query.queryName] = query.legend;
|
|
|
|
|
|
|
|
|
|
return newResult;
|
|
|
|
|
},
|
|
|
|
|
{},
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const preparedFormulaData: MapFormula = data.queryFormulas.reduce<MapFormula>(
|
|
|
|
|
(acc, formula) => {
|
|
|
|
|
const newResult: MapFormula = {
|
|
|
|
|
...acc,
|
|
|
|
|
[formula.queryName]: {
|
|
|
|
|
...formula,
|
|
|
|
|
},
|
|
|
|
|
};
|
|
|
|
|
|
2023-05-10 19:40:27 +03:00
|
|
|
newLegendMap[formula.queryName] = formula.legend;
|
|
|
|
|
|
2023-05-02 17:08:03 +03:00
|
|
|
return newResult;
|
|
|
|
|
},
|
|
|
|
|
{},
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
data: { ...preparedQueryData, ...preparedFormulaData },
|
|
|
|
|
newLegendMap,
|
|
|
|
|
};
|
|
|
|
|
};
|