mirror of
https://github.com/umami-software/umami.git
synced 2026-02-12 16:45:35 +01:00
Merge branch 'dev' into jajaja
# Conflicts: # db/postgresql/schema.prisma # pnpm-lock.yaml # src/app/(main)/websites/[websiteId]/WebsiteDetailsPage.tsx # src/app/(main)/websites/[websiteId]/compare/WebsiteComparePage.tsx # src/app/api/reports/route.ts # src/app/api/websites/[websiteId]/events/series/route.ts # src/app/api/websites/[websiteId]/metrics/route.ts # src/app/api/websites/[websiteId]/pageviews/route.ts # src/app/api/websites/[websiteId]/sessions/stats/route.ts # src/app/api/websites/[websiteId]/stats/route.ts # src/app/api/websites/[websiteId]/values/route.ts # src/components/hooks/useFields.ts # src/components/hooks/useFilterParams.ts # src/lang/vi-VN.json # src/lib/clickhouse.ts # src/lib/detect.ts # src/lib/prisma.ts # src/lib/request.ts # src/lib/schema.ts # src/lib/types.ts # src/queries/sql/events/getEventDataFields.ts # src/queries/sql/events/getEventDataProperties.ts # src/queries/sql/events/getEventDataStats.ts # src/queries/sql/events/getEventDataValues.ts # src/queries/sql/events/getEventMetrics.ts # src/queries/sql/events/getWebsiteEvents.ts # src/queries/sql/getChannelMetrics.ts # src/queries/sql/getRealtimeActivity.ts # src/queries/sql/getWebsiteStats.ts # src/queries/sql/pageviews/getPageviewMetrics.ts # src/queries/sql/pageviews/getPageviewStats.ts # src/queries/sql/reports/getBreakdown.ts # src/queries/sql/sessions/getSessionDataProperties.ts # src/queries/sql/sessions/getSessionDataValues.ts # src/queries/sql/sessions/getSessionMetrics.ts # src/queries/sql/sessions/getSessionStats.ts # src/queries/sql/sessions/getWebsiteSessionStats.ts # src/queries/sql/sessions/getWebsiteSessions.ts
This commit is contained in:
commit
87449ece9e
49 changed files with 704 additions and 345 deletions
|
|
@ -1,10 +1,11 @@
|
|||
import { z } from 'zod/v4';
|
||||
import { FILTER_COLUMNS, DEFAULT_PAGE_SIZE } from '@/lib/constants';
|
||||
import { FILTER_COLUMNS, DEFAULT_PAGE_SIZE, FILTER_GROUPS } from '@/lib/constants';
|
||||
import { badRequest, unauthorized } from '@/lib/response';
|
||||
import { getAllowedUnits, getMinimumUnit, maxDate } from '@/lib/date';
|
||||
import { checkAuth } from '@/lib/auth';
|
||||
import { fetchWebsite } from '@/lib/load';
|
||||
import { QueryFilters } from '@/lib/types';
|
||||
import { getWebsiteSegment } from '@/queries';
|
||||
|
||||
export async function parseRequest(
|
||||
request: Request,
|
||||
|
|
@ -65,16 +66,30 @@ export function getRequestDateRange(query: Record<string, string>) {
|
|||
};
|
||||
}
|
||||
|
||||
export function getRequestFilters(query: Record<string, any>) {
|
||||
return Object.keys(FILTER_COLUMNS).reduce((obj, key) => {
|
||||
export async function getRequestFilters(query: Record<string, any>, websiteId?: string) {
|
||||
const result: Record<string, any> = {};
|
||||
|
||||
for (const key of Object.keys(FILTER_COLUMNS)) {
|
||||
const value = query[key];
|
||||
|
||||
if (value !== undefined) {
|
||||
obj[key] = value;
|
||||
result[key] = value;
|
||||
}
|
||||
}
|
||||
|
||||
return obj;
|
||||
}, {});
|
||||
for (const key of Object.keys(FILTER_GROUPS)) {
|
||||
const value = query[key];
|
||||
if (value !== undefined) {
|
||||
const segment = await getWebsiteSegment(websiteId, key, value);
|
||||
if (key === 'segment') {
|
||||
// merge filters into result
|
||||
Object.assign(result, segment.parameters);
|
||||
} else {
|
||||
result[key] = segment.parameters;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
export async function setWebsiteDate(websiteId: string, data: Record<string, any>) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue