Files
cozsweet-frontend-nextjs/src/data/services/api/metrics_api.ts
T

40 lines
946 B
TypeScript

/**
* Metrics API
*
* 数据看板/上报相关接口
* 原始 Dart: lib/data/services/api/metrics_api_client.dart
*/
import { httpClient } from "./http_client";
import { ApiPath } from "./api_path";
import { ApiEnvelope, unwrapOptional } from "./response_helper";
import { AppEvent, PwaEvent } from "@/data/dto/metrics";
export class MetricsApi {
/**
* 上报 PWA 事件
*/
async reportPwaEvent(body: PwaEvent): Promise<void> {
const env = await httpClient<ApiEnvelope<unknown>>(
ApiPath.metricsPwaEvent,
{ method: "POST", body: body.toJson() }
);
unwrapOptional(env);
}
/**
* 上报用户信息
*/
async reportUserInfo(body: AppEvent): Promise<void> {
const env = await httpClient<ApiEnvelope<unknown>>(
ApiPath.reportUserInfo,
{ method: "POST", body: body.toJson() }
);
unwrapOptional(env);
}
}
/**
* 全局单例
*/
export const metricsApi = new MetricsApi();