clean-up session api endpoints and queries

This commit is contained in:
Francis Cao 2025-10-21 19:54:50 -07:00
parent f98e683979
commit 533a42eb2e
10 changed files with 64 additions and 43 deletions

View file

@ -5,12 +5,22 @@ import { ReactQueryOptions } from '@/lib/types';
export function useSessionDataPropertiesQuery(websiteId: string, options?: ReactQueryOptions) {
const { get, useQuery } = useApi();
const date = useDateParameters();
const { startAt, endAt, unit, timezone } = useDateParameters();
const filters = useFilterParameters();
return useQuery<any>({
queryKey: ['websites:session-data:properties', { websiteId, ...date, ...filters }],
queryFn: () => get(`/websites/${websiteId}/session-data/properties`, { ...date, ...filters }),
queryKey: [
'websites:session-data:properties',
{ websiteId, startAt, endAt, unit, timezone, ...filters },
],
queryFn: () =>
get(`/websites/${websiteId}/session-data/properties`, {
startAt,
endAt,
unit,
timezone,
...filters,
}),
enabled: !!websiteId,
...options,
});

View file

@ -9,13 +9,23 @@ export function useSessionDataValuesQuery(
options?: ReactQueryOptions,
) {
const { get, useQuery } = useApi();
const date = useDateParameters();
const { startAt, endAt, unit, timezone } = useDateParameters();
const filters = useFilterParameters();
return useQuery<any>({
queryKey: ['websites:session-data:values', { websiteId, propertyName, ...date, ...filters }],
queryKey: [
'websites:session-data:values',
{ websiteId, propertyName, startAt, endAt, unit, timezone, ...filters },
],
queryFn: () =>
get(`/websites/${websiteId}/session-data/values`, { ...date, ...filters, propertyName }),
get(`/websites/${websiteId}/session-data/values`, {
startAt,
endAt,
unit,
timezone,
...filters,
propertyName,
}),
enabled: !!(websiteId && propertyName),
...options,
});

View file

@ -4,12 +4,13 @@ import { useDateParameters } from '../useDateParameters';
export function useWebsiteSessionStatsQuery(websiteId: string, options?: Record<string, string>) {
const { get, useQuery } = useApi();
const date = useDateParameters();
const { startAt, endAt, unit, timezone } = useDateParameters();
const filters = useFilterParameters();
return useQuery({
queryKey: ['sessions:stats', { websiteId, ...date, ...filters }],
queryFn: () => get(`/websites/${websiteId}/sessions/stats`, { ...date, ...filters }),
queryKey: ['sessions:stats', { websiteId, startAt, endAt, unit, timezone, ...filters }],
queryFn: () =>
get(`/websites/${websiteId}/sessions/stats`, { startAt, endAt, unit, timezone, ...filters }),
enabled: !!websiteId,
...options,
});

View file

@ -1,8 +1,8 @@
import { useApi } from '../useApi';
import { usePagedQuery } from '../usePagedQuery';
import { useModified } from '../useModified';
import { useFilterParameters } from '../useFilterParameters';
import { useDateParameters } from '../useDateParameters';
import { useFilterParameters } from '../useFilterParameters';
import { useModified } from '../useModified';
import { usePagedQuery } from '../usePagedQuery';
export function useWebsiteSessionsQuery(
websiteId: string,
@ -10,14 +10,20 @@ export function useWebsiteSessionsQuery(
) {
const { get } = useApi();
const { modified } = useModified(`sessions`);
const date = useDateParameters();
const { startAt, endAt, unit, timezone } = useDateParameters();
const filters = useFilterParameters();
return usePagedQuery({
queryKey: ['sessions', { websiteId, modified, ...params, ...date, ...filters }],
queryKey: [
'sessions',
{ websiteId, modified, startAt, endAt, unit, timezone, ...params, ...filters },
],
queryFn: pageParams => {
return get(`/websites/${websiteId}/sessions`, {
...date,
startAt,
endAt,
unit,
timezone,
...filters,
...pageParams,
...params,