diff --git a/src/app/api/request/route.ts b/src/app/api/request/route.ts index 15a6327..5157716 100644 --- a/src/app/api/request/route.ts +++ b/src/app/api/request/route.ts @@ -6,31 +6,53 @@ import { randomUUID } from "crypto"; export async function POST(req: Request) { try { - const {subject, exam, slot, year} = (await req.json()) as CreatePaperInputType + const { subject, exam, slot, year } = + (await req.json()) as CreatePaperInputType; if (!subject || !exam || !slot || !year) { return failure("All fields are required.", 400); } - const newRequest = await createPaperRequest({subject, exam, slot, year}); + const newRequest = await createPaperRequest({ subject, exam, slot, year }); - const posthog = getPostHogClient(); - if (posthog) { - posthog.capture({ - distinctId: randomUUID(), - event: "paper_request_created", - properties: { - exam, - slot, - year, - }, + try { + const posthog = getPostHogClient(); + if (posthog) { + posthog.capture({ + distinctId: randomUUID(), + event: "paper_request_created", + properties: { + exam, + slot, + year, + }, + }); + await posthog.flush(); + } + } catch (analyticsError) { + console.error("[REQUEST_ANALYTICS_ERROR]", { + name: + analyticsError instanceof Error ? analyticsError.name : "UnknownError", + message: + analyticsError instanceof Error + ? analyticsError.message + : String(analyticsError), + stack: + analyticsError instanceof Error ? analyticsError.stack : undefined, }); - await posthog.flush(); } - return success({ message: "Paper request submitted successfully!", request: newRequest }, "Created", 201); + return success( + { message: "Paper request submitted successfully!", request: newRequest }, + "Created", + 201, + ); } catch (error) { - console.error("Error creating paper request:", error); + console.error("[REQUEST_ROUTE_ERROR]", { + name: error instanceof Error ? error.name : "UnknownError", + message: error instanceof Error ? error.message : String(error), + stack: error instanceof Error ? error.stack : undefined, + }); return failure("Failed to submit request.", 500); } } diff --git a/src/app/api/upload/route.ts b/src/app/api/upload/route.ts index 782a48c..4cbc6c2 100644 --- a/src/app/api/upload/route.ts +++ b/src/app/api/upload/route.ts @@ -23,18 +23,35 @@ export async function POST(req: Request) { return failure(result.message, result.status); } - const posthog = getPostHogClient(); - if (posthog) { - posthog.capture({ - distinctId: randomUUID(), - event: "paper_upload_completed", - properties: { - file_count: files.length, - is_pdf: isPdf, - campus: campus ?? "unknown", - }, + try { + const posthog = getPostHogClient(); + + if (posthog) { + posthog.capture({ + distinctId: randomUUID(), + event: "paper_upload_completed", + properties: { + file_count: files.length, + is_pdf: isPdf, + campus: campus ?? "unknown", + }, + }); + + await posthog.flush(); + } + } catch (analyticsError) { + console.error("[UPLOAD_ANALYTICS_ERROR]", { + name: + analyticsError instanceof Error + ? analyticsError.name + : "UnknownError", + message: + analyticsError instanceof Error + ? analyticsError.message + : String(analyticsError), + stack: + analyticsError instanceof Error ? analyticsError.stack : undefined, }); - await posthog.flush(); } return success( @@ -43,7 +60,11 @@ export async function POST(req: Request) { 201, ); } catch (error) { - console.error(error); + console.error("[UPLOAD_ROUTE_ERROR]", { + name: error instanceof Error ? error.name : "UnknownError", + message: error instanceof Error ? error.message : String(error), + stack: error instanceof Error ? error.stack : undefined, + }); return failure("Failed to upload papers", 500); } } \ No newline at end of file