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,
|
2025-08-25 16:45:17 +05:30
|
|
|
queryTypes?: Record<string, 'builder_query' | 'builder_formula'>,
|
2023-06-01 20:17:09 +03:00
|
|
|
): QueryBuilderData => {
|
|
|
|
|
const queryData: QueryBuilderData['queryData'] = [];
|
|
|
|
|
const queryFormulas: QueryBuilderData['queryFormulas'] = [];
|
|
|
|
|
|
2025-08-25 16:45:17 +05:30
|
|
|
Object.entries(data).forEach(([key, value]) => {
|
|
|
|
|
const isFormula = queryTypes
|
|
|
|
|
? queryTypes[key] === 'builder_formula'
|
|
|
|
|
: FORMULA_REGEXP.test(value.queryName);
|
|
|
|
|
|
|
|
|
|
if (isFormula) {
|
2023-06-01 20:17:09 +03:00
|
|
|
const formula = value as IBuilderFormula;
|
2025-08-25 16:45:17 +05:30
|
|
|
queryFormulas.push({ ...initialFormulaBuilderFormValues, ...formula });
|
2023-06-01 20:17:09 +03:00
|
|
|
} else {
|
2024-07-23 17:20:31 +05:30
|
|
|
const queryFromData = value as IBuilderQuery;
|
2025-08-25 16:45:17 +05:30
|
|
|
queryData.push({
|
|
|
|
|
...initialQueryBuilderFormValuesMap.metrics,
|
|
|
|
|
...queryFromData,
|
|
|
|
|
});
|
2023-06-01 20:17:09 +03:00
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
return { queryData, queryFormulas };
|
|
|
|
|
};
|