Files
AutonetSellCar/temp_api_addition.ts

50 lines
1.9 KiB
TypeScript

export const visitorsApi = {
// Track visitor (public)
track: (pagePath?: string, referrer?: string) =>
fetchApi<{ message: string; new_visitor: boolean }>(`/visitors/track?${new URLSearchParams({
...(pagePath && { page_path: pagePath }),
...(referrer && { referrer: referrer })
}).toString()}`, {
method: "POST",
}),
// Get stats (public)
getStats: () =>
fetchApi<VisitorStats>("/visitors/stats/public"),
// Admin
adminGetStats: (token: string) =>
fetchApi<VisitorStats>("/visitors/stats", { token }),
adminGetCountryStats: (token: string) =>
fetchApi<CountryStats[]>("/visitors/stats/countries", { token }),
// Extended statistics
adminGetOverview: (token: string, days: number = 30) =>
fetchApi<OverviewStats>(`/visitors/admin/overview?days=${days}`, { token }),
adminGetVisitsChart: (token: string, days: number = 30) =>
fetchApi<ChartData>(`/visitors/admin/chart/visits?days=${days}`, { token }),
adminGetUniqueChart: (token: string, days: number = 30) =>
fetchApi<ChartData>(`/visitors/admin/chart/unique?days=${days}`, { token }),
adminGetDeviceBreakdown: (token: string, days: number = 30) =>
fetchApi<BreakdownData>(`/visitors/admin/breakdown/device?days=${days}`, { token }),
adminGetBrowserBreakdown: (token: string, days: number = 30) =>
fetchApi<BreakdownData>(`/visitors/admin/breakdown/browser?days=${days}`, { token }),
adminGetOsBreakdown: (token: string, days: number = 30) =>
fetchApi<BreakdownData>(`/visitors/admin/breakdown/os?days=${days}`, { token }),
adminGetTopPages: (token: string, days: number = 30) =>
fetchApi<TopPagesData>(`/visitors/admin/top-pages?days=${days}`, { token }),
adminGetTopReferrers: (token: string, days: number = 30) =>
fetchApi<TopReferrersData>(`/visitors/admin/top-referrers?days=${days}`, { token }),
adminGetRealtime: (token: string) =>
fetchApi<RealtimeStats>("/visitors/admin/realtime", { token }),
};