2023-06-01 20:17:09 +03:00
|
|
|
import {
|
|
|
|
|
initialFormulaBuilderFormValues,
|
2023-06-16 13:38:39 +03:00
|
|
|
initialQueryBuilderFormValuesMap,
|
2023-06-01 20:17:09 +03:00
|
|
|
} from 'constants/queryBuilder';
|
|
|
|
|
import { FORMULA_REGEXP } from 'constants/regExp';
|
|
|
|
|
import {
|
|
|
|
|
BuilderQueryDataResourse,
|
|
|
|
|
IBuilderFormula,
|
|
|
|
|
IBuilderQuery,
|
|
|
|
|
} from 'types/api/queryBuilder/queryBuilderData';
|
|
|
|
|
import { QueryBuilderData } from 'types/common/queryBuilder';
|
|
|
|
|
|
|
|
|
|
export const transformQueryBuilderDataModel = (
|
|
|
|
|
data: BuilderQueryDataResourse,
|
|
|
|
|
): QueryBuilderData => {
|
|
|
|
|
const queryData: QueryBuilderData['queryData'] = [];
|
|
|
|
|
const queryFormulas: QueryBuilderData['queryFormulas'] = [];
|
|
|
|
|
|
|
|
|
|
Object.entries(data).forEach(([, value]) => {
|
|
|
|
|
if (FORMULA_REGEXP.test(value.queryName)) {
|
|
|
|
|
const formula = value as IBuilderFormula;
|
|
|
|
|
queryFormulas.push({ ...initialFormulaBuilderFormValues, ...formula });
|
|
|
|
|
} else {
|
|
|
|
|
const query = value as IBuilderQuery;
|
2023-06-16 13:38:39 +03:00
|
|
|
queryData.push({ ...initialQueryBuilderFormValuesMap.metrics, ...query });
|
2023-06-01 20:17:09 +03:00
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return { queryData, queryFormulas };
|
|
|
|
|
};
|