signoz/frontend/src/lib/query/transformQueryBuilderData.ts
Yevhen Shevchenko dd25ad95c7
feat(builder): add having filter (#2567)
* feat(builder): add having filter

* feat(builder): add having filter

* feat(builder): add having filter

* feat: return initial query builder

* fix: having filter operators and values
2023-04-19 09:55:18 +05:30

23 lines
728 B
TypeScript

import { OPERATORS } from 'constants/queryBuilder';
import { Having } from 'types/api/queryBuilder/queryBuilderData';
export const transformHavingToStringValue = (having: Having[]): string[] => {
const result: string[] = having.map((item) => {
const operator = Object.entries(OPERATORS).find(([key]) => key === item.op);
return `${item.columnName} ${operator ? operator[1] : ''} ${item.value.join(
' ',
)}`;
});
return result;
};
export const transformFromStringToHaving = (havingStr: string): Having => {
const [columnName, op, ...value] = havingStr.split(' ');
const operator = Object.entries(OPERATORS).find(([, value]) => value === op);
return { columnName, op: operator ? operator[0] : '', value };
};