feat(analytics): add site settings and public dashboard

This commit is contained in:
Usman Baig
2026-01-18 18:39:26 +01:00
parent dcfead33d6
commit 8fe2500d19
4 changed files with 583 additions and 35 deletions

View File

@@ -5,6 +5,9 @@ export interface Site {
user_id: string
domain: string
name: string
timezone?: string
is_public?: boolean
excluded_paths?: string[]
created_at: string
updated_at: string
}
@@ -16,6 +19,10 @@ export interface CreateSiteRequest {
export interface UpdateSiteRequest {
name: string
timezone?: string
is_public?: boolean
password?: string
excluded_paths?: string[]
}
export async function listSites(): Promise<Site[]> {
@@ -46,3 +53,9 @@ export async function deleteSite(id: string): Promise<void> {
method: 'DELETE',
})
}
export async function resetSiteData(id: string): Promise<void> {
await apiRequest(`/sites/${id}/reset`, {
method: 'POST',
})
}

View File

@@ -207,3 +207,13 @@ export async function getDashboard(siteId: string, startDate?: string, endDate?:
params.append('limit', limit.toString())
return apiRequest<DashboardData>(`/sites/${siteId}/dashboard?${params.toString()}`)
}
export async function getPublicDashboard(siteId: string, startDate?: string, endDate?: string, limit = 10, interval?: string, password?: string): Promise<DashboardData> {
const params = new URLSearchParams()
if (startDate) params.append('start_date', startDate)
if (endDate) params.append('end_date', endDate)
if (interval) params.append('interval', interval)
if (password) params.append('password', password)
params.append('limit', limit.toString())
return apiRequest<DashboardData>(`/public/sites/${siteId}/dashboard?${params.toString()}`)
}