12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import type {Query} from 'history';
- import {decodeScalar} from 'sentry/utils/queryString';
- import {MutableSearch} from 'sentry/utils/tokenizeSearch';
- import type {DomainView} from 'sentry/views/insights/pages/useFilters';
- import {getTransactionSummaryBaseUrl} from 'sentry/views/performance/transactionSummary/utils';
- export function aggregateWaterfallRouteWithQuery({
- orgSlug,
- transaction,
- projectID,
- query,
- view,
- }: {
- orgSlug: string;
- query: Query;
- transaction: string;
- projectID?: string | string[];
- view?: DomainView;
- }) {
- const pathname = `${getTransactionSummaryBaseUrl(orgSlug, view)}/aggregateWaterfall/`;
- const filter = decodeScalar(query.query);
- let httpMethod: string | undefined = undefined;
- if (filter) {
- const search = new MutableSearch(filter);
- const method = search.tokens.find(token => token.key === 'http.method');
- if (method) {
- httpMethod = method.value;
- }
- }
- return {
- pathname,
- query: {
- transaction,
- project: projectID,
- environment: query.environment,
- statsPeriod: query.statsPeriod,
- start: query.start,
- end: query.end,
- query: query.query,
- ...(httpMethod ? {'http.method': httpMethod} : null),
- },
- };
- }
|