(params: {
userId: number;
key: string;
model: string;
endpoint: string;
costUsd: string;
inputTokens: number;
outputTokens: number;
createdAt: Date;
clientIp?: string | null;
})
| 170 | } |
| 171 | |
| 172 | async 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 | |
| 209 | describe.skipIf(!process.env.DSN)("my-usage API:只读 Key 自助查询", () => { |
| 210 | const createdUserIds: number[] = []; |
no test coverage detected