Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 37 additions & 15 deletions src/app/api/request/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
45 changes: 33 additions & 12 deletions src/app/api/upload/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand All @@ -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);
}
}
Loading