mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-10-13 07:11:30 +08:00
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { initialQueryState } from 'constants/queryBuilder';
|
|
import { ICompositeMetricQuery } from 'types/api/alerts/compositeQuery';
|
|
import { Query } from 'types/api/queryBuilder/queryBuilderData';
|
|
import { v4 as uuid } from 'uuid';
|
|
|
|
import { transformQueryBuilderDataModel } from '../transformQueryBuilderDataModel';
|
|
|
|
export const mapQueryDataFromApi = (
|
|
compositeQuery: ICompositeMetricQuery,
|
|
): Query => {
|
|
const builder = compositeQuery.builderQueries
|
|
? transformQueryBuilderDataModel(compositeQuery.builderQueries)
|
|
: initialQueryState.builder;
|
|
|
|
const promql = compositeQuery.promQueries
|
|
? Object.keys(compositeQuery.promQueries).map((key) => ({
|
|
...compositeQuery.promQueries[key],
|
|
name: key,
|
|
}))
|
|
: initialQueryState.promql;
|
|
|
|
const clickhouseSql = compositeQuery.chQueries
|
|
? Object.keys(compositeQuery.chQueries).map((key) => ({
|
|
...compositeQuery.chQueries[key],
|
|
name: key,
|
|
query: compositeQuery.chQueries[key].query,
|
|
}))
|
|
: initialQueryState.clickhouse_sql;
|
|
|
|
return {
|
|
builder,
|
|
promql,
|
|
clickhouse_sql: clickhouseSql,
|
|
queryType: compositeQuery.queryType,
|
|
id: uuid(),
|
|
unit: compositeQuery.unit,
|
|
};
|
|
};
|