Merge branch 'dev' into analytics

This commit is contained in:
Mike Cao 2025-02-11 11:31:19 -08:00
commit 28de4af635
5 changed files with 15 additions and 21 deletions

View file

@ -75,7 +75,7 @@
"@react-spring/web": "^9.7.3", "@react-spring/web": "^9.7.3",
"@tanstack/react-query": "^5.28.6", "@tanstack/react-query": "^5.28.6",
"@umami/prisma-client": "^0.14.0", "@umami/prisma-client": "^0.14.0",
"@umami/redis-client": "^0.25.0", "@umami/redis-client": "^0.26.0",
"bcryptjs": "^2.4.3", "bcryptjs": "^2.4.3",
"chalk": "^4.1.1", "chalk": "^4.1.1",
"chart.js": "^4.4.2", "chart.js": "^4.4.2",

View file

@ -8,7 +8,7 @@ import { reportParms } from '@/lib/schema';
export async function POST(request: Request) { export async function POST(request: Request) {
const schema = z.object({ const schema = z.object({
...reportParms, ...reportParms,
window: z.number().positive(), window: z.coerce.number().positive(),
steps: z steps: z
.array( .array(
z.object({ z.object({

View file

@ -3,6 +3,7 @@ import { useCallback, useEffect, useState } from 'react';
import { useApi } from '../useApi'; import { useApi } from '../useApi';
import { useTimezone } from '../useTimezone'; import { useTimezone } from '../useTimezone';
import { useMessages } from '../useMessages'; import { useMessages } from '../useMessages';
import { parseDateRange } from '@/lib/date';
export function useReport( export function useReport(
reportId: string, reportId: string,
@ -24,14 +25,12 @@ export function useReport(
const data: any = await get(`/reports/${id}`); const data: any = await get(`/reports/${id}`);
const { dateRange } = data?.parameters || {}; const { dateRange } = data?.parameters || {};
const { startDate, endDate } = dateRange || {};
if (startDate && endDate) { data.parameters = {
dateRange.startDate = new Date(startDate); ...defaultParameters?.parameters,
dateRange.endDate = new Date(endDate); ...data.parameters,
} dateRange: parseDateRange(dateRange.value),
};
data.parameters = { ...defaultParameters?.parameters, ...data.parameters };
setReport(data); setReport(data);
}; };

View file

@ -32,7 +32,6 @@ async function relationalQuery(
websiteId, websiteId,
{ {
...filters, ...filters,
eventType: column === 'event_name' ? EVENT_TYPE.customEvent : EVENT_TYPE.pageView,
}, },
{ joinSession: SESSION_COLUMNS.includes(type) }, { joinSession: SESSION_COLUMNS.includes(type) },
); );
@ -54,7 +53,6 @@ async function relationalQuery(
from website_event from website_event
where website_event.website_id = {{websiteId::uuid}} where website_event.website_id = {{websiteId::uuid}}
and website_event.created_at between {{startDate}} and {{endDate}} and website_event.created_at between {{startDate}} and {{endDate}}
and event_type = {{eventType}}
group by visit_id group by visit_id
) x ) x
on x.visit_id = website_event.visit_id on x.visit_id = website_event.visit_id
@ -96,14 +94,14 @@ async function clickhouseQuery(
eventType: column === 'event_name' ? EVENT_TYPE.customEvent : EVENT_TYPE.pageView, eventType: column === 'event_name' ? EVENT_TYPE.customEvent : EVENT_TYPE.pageView,
}); });
let excludeDomain = '';
let sql = ''; let sql = '';
let excludeDomain = '';
if (EVENT_COLUMNS.some(item => Object.keys(filters).includes(item))) { if (EVENT_COLUMNS.some(item => Object.keys(filters).includes(item))) {
let entryExitQuery = ''; let entryExitQuery = '';
if (column === 'referrer_domain') { if (column === 'referrer_domain') {
excludeDomain = `and referrer_domain != hostname and referrer_domain != ''`; excludeDomain = `and referrer_domain != hostname and hostname != ''`;
} }
if (type === 'entry' || type === 'exit') { if (type === 'entry' || type === 'exit') {
@ -115,7 +113,6 @@ async function clickhouseQuery(
from website_event from website_event
where website_id = {websiteId:UUID} where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64} and created_at between {startDate:DateTime64} and {endDate:DateTime64}
and event_type = {eventType:UInt32}
group by visit_id) x group by visit_id) x
ON x.visit_id = website_event.visit_id ON x.visit_id = website_event.visit_id
and x.target_created_at = website_event.created_at`; and x.target_created_at = website_event.created_at`;
@ -127,7 +124,6 @@ async function clickhouseQuery(
${entryExitQuery} ${entryExitQuery}
where website_id = {websiteId:UUID} where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64} and created_at between {startDate:DateTime64} and {endDate:DateTime64}
and event_type = {eventType:UInt32}
${excludeDomain} ${excludeDomain}
${filterQuery} ${filterQuery}
group by x group by x
@ -139,7 +135,7 @@ async function clickhouseQuery(
let groupByQuery = ''; let groupByQuery = '';
if (column === 'referrer_domain') { if (column === 'referrer_domain') {
excludeDomain = `and t != hostname`; excludeDomain = `and t != hostname and hostname != ''`;
} }
let columnQuery = `arrayJoin(${column})`; let columnQuery = `arrayJoin(${column})`;
@ -164,7 +160,6 @@ async function clickhouseQuery(
from website_event_stats_hourly website_event from website_event_stats_hourly website_event
where website_id = {websiteId:UUID} where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64} and created_at between {startDate:DateTime64} and {endDate:DateTime64}
and event_type = {eventType:UInt32}
${excludeDomain} ${excludeDomain}
${filterQuery} ${filterQuery}
${groupByQuery}) as g ${groupByQuery}) as g

View file

@ -3417,10 +3417,10 @@
chalk "^4.1.2" chalk "^4.1.2"
debug "^4.3.4" debug "^4.3.4"
"@umami/redis-client@^0.25.0": "@umami/redis-client@^0.26.0":
version "0.25.0" version "0.26.0"
resolved "https://registry.yarnpkg.com/@umami/redis-client/-/redis-client-0.25.0.tgz#8bf01f22ceb3b90e15e59ab8daf44f838b83a6a7" resolved "https://registry.yarnpkg.com/@umami/redis-client/-/redis-client-0.26.0.tgz#0476e903a30322a43247dc292003224686971c12"
integrity sha512-j2GUehtrUfNPuikmcVXucgnL04gQOtbLiG20NqdlUXlDA/ebkV/waDfcYtMLuvXOFwiEeTatqPFEfXYuLDwJWw== integrity sha512-j2vxb1gYF5zfk7BkrHgau2MwKsB5ijbQh2w1WoIvbP41cqTMsFm/zUrjhZ0cP1ZxR/riQR1AWxKmqNggYRZ5eA==
dependencies: dependencies:
debug "^4.3.4" debug "^4.3.4"
redis "^4.5.1" redis "^4.5.1"