53 lines
1.4 KiB
TypeScript
53 lines
1.4 KiB
TypeScript
// ============================================================================
|
|
// Analytics API
|
|
// ============================================================================
|
|
|
|
import { api } from "./client";
|
|
import type {
|
|
PlacementAnalyticsItem,
|
|
CreativeAnalyticsItem,
|
|
ChannelAnalyticsItem,
|
|
SpendingAnalytics,
|
|
AnalyticsQueryParams,
|
|
SpendingAnalyticsQueryParams,
|
|
PaginatedResponse,
|
|
} from "@/lib/types/api";
|
|
|
|
export const analyticsApi = {
|
|
/**
|
|
* Get placements analytics
|
|
*/
|
|
placements: (workspaceId: string, params?: AnalyticsQueryParams) =>
|
|
api.get<PaginatedResponse<PlacementAnalyticsItem>>(
|
|
`/workspaces/${workspaceId}/analytics/placements`,
|
|
{ params }
|
|
),
|
|
|
|
/**
|
|
* Get creatives analytics
|
|
*/
|
|
creatives: (workspaceId: string, params?: AnalyticsQueryParams) =>
|
|
api.get<PaginatedResponse<CreativeAnalyticsItem>>(
|
|
`/workspaces/${workspaceId}/analytics/creatives`,
|
|
{ params }
|
|
),
|
|
|
|
/**
|
|
* Get channels analytics
|
|
*/
|
|
channels: (workspaceId: string, params?: AnalyticsQueryParams) =>
|
|
api.get<PaginatedResponse<ChannelAnalyticsItem>>(
|
|
`/workspaces/${workspaceId}/analytics/channels`,
|
|
{ params }
|
|
),
|
|
|
|
/**
|
|
* Get spending analytics (time-series data)
|
|
*/
|
|
spending: (workspaceId: string, params?: SpendingAnalyticsQueryParams) =>
|
|
api.get<SpendingAnalytics>(
|
|
`/workspaces/${workspaceId}/analytics/spending`,
|
|
{ params }
|
|
),
|
|
};
|