paperclip/ui/src/api/costs.ts

28 lines
987 B
TypeScript
Raw Normal View History

import type { CostSummary, CostByAgent } from "@paperclip/shared";
import { api } from "./client";
export interface CostByEntity {
agentId?: string | null;
projectId?: string | null;
costCents: number;
inputTokens: number;
outputTokens: number;
}
function dateParams(from?: string, to?: string): string {
const params = new URLSearchParams();
if (from) params.set("from", from);
if (to) params.set("to", to);
const qs = params.toString();
return qs ? `?${qs}` : "";
}
export const costsApi = {
summary: (companyId: string, from?: string, to?: string) =>
api.get<CostSummary>(`/companies/${companyId}/costs/summary${dateParams(from, to)}`),
byAgent: (companyId: string, from?: string, to?: string) =>
api.get<CostByAgent[]>(`/companies/${companyId}/costs/by-agent${dateParams(from, to)}`),
byProject: (companyId: string, from?: string, to?: string) =>
api.get<CostByEntity[]>(`/companies/${companyId}/costs/by-project${dateParams(from, to)}`),
};