mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-21 09:26:52 +00:00
* fix: having value data type * feat: connect new builder to dashboard * Fix/query builder filters (#2623) * feat: rename query data type * fix: remove reset of groupBy * fix: filters search * fix: calls autocomplete times * fix: response mapper * fix: removee unnecessary field * fix: no check ts types for old query builder * fix: disable check utils old builder
35 lines
1.0 KiB
TypeScript
35 lines
1.0 KiB
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);
|
|
const value = Array.isArray(item.value) ? item.value.join(', ') : item.value;
|
|
|
|
return `${item.columnName} ${operator ? operator[1] : ''} ${value}`;
|
|
});
|
|
|
|
return result;
|
|
};
|
|
|
|
export const transformFromStringToHaving = (havingStr: string): Having => {
|
|
const [columnName, op, ...values] = havingStr.split(' ');
|
|
|
|
const operator = Object.entries(OPERATORS).find(([, value]) => value === op);
|
|
|
|
const currentValue = values.reduce<number[]>((acc, strNum) => {
|
|
const num = parseFloat(strNum);
|
|
if (Number.isNaN(num)) {
|
|
return acc;
|
|
}
|
|
|
|
return [...acc, num];
|
|
}, []);
|
|
|
|
return {
|
|
columnName,
|
|
op: operator ? operator[0] : '',
|
|
value: currentValue.length > 1 ? currentValue : currentValue[0],
|
|
};
|
|
};
|