MCPcopy Index your code
hub / github.com/CodebuffAI/codebuff / GET

Function GET

web/src/app/api/admin/traces/client/[clientId]/sessions/route.ts:41–125  ·  view source on GitHub ↗
(req: NextRequest, { params }: RouteParams)

Source from the content-addressed store, hash-verified

39}
40
41export async function GET(req: NextRequest, { params }: RouteParams) {
42 // Check admin authentication
43 const authResult = await checkAdminAuth()
44 if (authResult instanceof NextResponse) {
45 return authResult
46 }
47
48 const { clientId } = await params
49
50 if (!clientId) {
51 return NextResponse.json(
52 { error: 'Missing required parameter: clientId' },
53 { status: 400 },
54 )
55 }
56
57 try {
58 // Query all messages for this client_id
59 const messages = await db
60 .select({
61 id: schema.message.id,
62 client_request_id: schema.message.client_request_id,
63 finished_at: schema.message.finished_at,
64 model: schema.message.model,
65 request: schema.message.request,
66 response: schema.message.response,
67 credits: schema.message.credits,
68 })
69 .from(schema.message)
70 .where(eq(schema.message.client_id, clientId))
71 .orderBy(schema.message.finished_at)
72
73 if (messages.length === 0) {
74 return NextResponse.json(
75 { error: 'No messages found for this client ID' },
76 { status: 404 },
77 )
78 }
79
80 // Transform messages into client messages
81 const clientMessages: ClientMessage[] = messages.map((msg) => ({
82 id: msg.id,
83 client_request_id: msg.client_request_id ?? 'NULL',
84 timestamp: msg.finished_at,
85 user_prompt: extractUserPromptFromRequest(msg.request),
86 assistant_response: extractAssistantResponseFromResponse(msg.response),
87 model: msg.model,
88 credits_used: msg.credits,
89 }))
90
91 // Calculate total credits
92 const totalCredits = messages.reduce((sum, msg) => sum + msg.credits, 0)
93
94 // Get date range
95 const dateRange = {
96 start: messages[0].finished_at,
97 end: messages[messages.length - 1].finished_at,
98 }

Callers

nothing calls this directly

Calls 4

checkAdminAuthFunction · 0.90
fromMethod · 0.80

Tested by

no test coverage detected