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

Function postFeedback

web/src/app/api/v1/feedback/_post.ts:15–105  ·  view source on GitHub ↗
(params: {
  req: NextRequest
  getUserInfoFromApiKey: GetUserInfoFromApiKeyFn
  logger: Logger
  loggerWithContext: LoggerWithContextFn
  trackEvent: TrackEventFn
})

Source from the content-addressed store, hash-verified

13import type { NextRequest } from 'next/server'
14
15export async function postFeedback(params: {
16 req: NextRequest
17 getUserInfoFromApiKey: GetUserInfoFromApiKeyFn
18 logger: Logger
19 loggerWithContext: LoggerWithContextFn
20 trackEvent: TrackEventFn
21}) {
22 const {
23 req,
24 getUserInfoFromApiKey,
25 logger: baseLogger,
26 loggerWithContext,
27 trackEvent,
28 } = params
29
30 // TODO: Persist feedback to a database table for durability and queryability
31 // TODO: Add rate limiting (e.g., 10 requests/minute per userId)
32
33 try {
34 const userResult = await requireUserFromApiKey({
35 req,
36 getUserInfoFromApiKey,
37 logger: baseLogger,
38 loggerWithContext,
39 trackEvent,
40 authErrorEvent: AnalyticsEvent.FEEDBACK_AUTH_ERROR,
41 })
42
43 if (!userResult.ok) {
44 return userResult.response
45 }
46
47 const { userId, logger } = userResult.data
48
49 const bodyResult = await parseJsonBody({
50 req,
51 schema: feedbackRequestSchema,
52 logger,
53 trackEvent,
54 validationErrorEvent: AnalyticsEvent.FEEDBACK_VALIDATION_ERROR,
55 userId,
56 })
57
58 if (!bodyResult.ok) {
59 return bodyResult.response
60 }
61
62 const feedback = bodyResult.data
63
64 try {
65 const {
66 clientFeedbackId, source, messageId, messageVariant,
67 completionTime, credits, agentMode, sessionCreditsUsed,
68 recentMessages, text, category, type, errors,
69 } = feedback
70
71 trackEvent({
72 event: AnalyticsEvent.FEEDBACK_SUBMITTED,

Callers 3

POSTFunction · 0.90
callPostFeedbackFunction · 0.90
feedback.test.tsFile · 0.90

Calls 3

requireUserFromApiKeyFunction · 0.90
parseJsonBodyFunction · 0.90
trackEventFunction · 0.50

Tested by 1

callPostFeedbackFunction · 0.72