MCPcopy Create free account
hub / github.com/ding113/claude-code-hub / insertLedgerOnlyRow

Function insertLedgerOnlyRow

tests/api/my-usage-readonly.test.ts:172–207  ·  view source on GitHub ↗
(params: {
  userId: number;
  key: string;
  model: string;
  endpoint: string;
  costUsd: string;
  inputTokens: number;
  outputTokens: number;
  createdAt: Date;
  clientIp?: string | null;
})

Source from the content-addressed store, hash-verified

170}
171
172async function insertLedgerOnlyRow(params: {
173 userId: number;
174 key: string;
175 model: string;
176 endpoint: string;
177 costUsd: string;
178 inputTokens: number;
179 outputTokens: number;
180 createdAt: Date;
181 clientIp?: string | null;
182}) {
183 const requestId = nextLedgerRequestId();
184 const providerId = nextLedgerProviderId();
185
186 await db.insert(usageLedger).values({
187 requestId,
188 userId: params.userId,
189 key: params.key,
190 providerId,
191 finalProviderId: providerId,
192 model: params.model,
193 originalModel: params.model,
194 endpoint: params.endpoint,
195 apiType: "openai",
196 statusCode: 200,
197 isSuccess: true,
198 blockedBy: null,
199 costUsd: params.costUsd,
200 inputTokens: params.inputTokens,
201 outputTokens: params.outputTokens,
202 clientIp: params.clientIp ?? null,
203 createdAt: params.createdAt,
204 });
205
206 return requestId;
207}
208
209describe.skipIf(!process.env.DSN)("my-usage API:只读 Key 自助查询", () => {
210 const createdUserIds: number[] = [];

Callers 1

Calls 2

nextLedgerRequestIdFunction · 0.85
nextLedgerProviderIdFunction · 0.85

Tested by

no test coverage detected