···
email_verification_required: true,
verification_code_sent_at: sentAt,
const error = err as { message?: string };
if (error.message?.includes("UNIQUE constraint failed")) {
{ error: "Email already registered" },
console.error("[Auth] Registration error:", err);
···
updatePasskeyName(passkeyId, user.id, name);
1068
-
return Response.json({ success: true });
1068
+
return new Response(null, { status: 204 });
···
const passkeyId = req.params.id;
deletePasskey(passkeyId, user.id);
1084
-
return Response.json({ success: true });
1084
+
return new Response(null, { status: 204 });
···
// Verify the session belongs to the user
const targetSession = getSession(targetSessionId);
if (!targetSession || targetSession.user_id !== user.id) {
1150
-
return Response.json({ error: "Session not found" }, { status: 404 });
1150
+
return Response.json({ error: "Forbidden" }, { status: 403 });
deleteSession(targetSessionId);
1153
-
return Response.json({ success: true });
1153
+
return new Response(null, { status: 204 });
···
if (rateLimitError) return rateLimitError;
await deleteUser(user.id);
1171
-
return Response.json(
1172
-
{ success: true },
1176
-
"session=; HttpOnly; Secure; Path=/; Max-Age=0; SameSite=Lax",
1171
+
return new Response(null, {
1175
+
"session=; HttpOnly; Secure; Path=/; Max-Age=0; SameSite=Lax",
···
{ error: "Email already in use" },
···
// Allow access if: owner, admin, or enrolled in the class
if (!isOwner && !isAdmin && !isClassMember) {
1652
-
{ error: "Transcription not found" },
1650
+
{ error: "Forbidden" },
···
// Allow access if: owner, admin, or enrolled in the class
if (!isOwner && !isAdmin && !isClassMember) {
1895
-
{ error: "Transcription not found" },
1893
+
{ error: "Forbidden" },
···
if (transcription.status !== "completed") {
{ error: "Transcription not completed yet" },
···
// Allow access if: owner, admin, or enrolled in the class
if (!isOwner && !isAdmin && !isClassMember) {
2003
-
{ error: "Transcription not found" },
2001
+
{ error: "Forbidden" },
···
// Don't auto-start transcription - admin will select recordings
// whisperService.startTranscription(transcriptionId, filename);
2305
-
return Response.json({
2306
-
id: transcriptionId,
2307
-
message: "Upload successful",
2303
+
return Response.json(
2305
+
id: transcriptionId,
2306
+
message: "Upload successful",
return handleError(error);
···
const id = req.params.id;
2380
-
return Response.json({ success: true });
2381
+
return new Response(null, { status: 204 });
return handleError(error);
···
const transcriptionId = req.params.id;
deleteTranscription(transcriptionId);
2392
-
return Response.json({ success: true });
2393
+
return new Response(null, { status: 204 });
return handleError(error);
···
return Response.json({ error: "Invalid user ID" }, { status: 400 });
await deleteUser(userId);
2407
-
return Response.json({ success: true });
2408
+
return new Response(null, { status: 204 });
return handleError(error);
···
const { passkeyId } = req.params;
deletePasskey(passkeyId, userId);
2657
-
return Response.json({ success: true });
2658
+
return new Response(null, { status: 204 });
return handleError(error);
···
{ error: "Email already in use" },
···
deleteAllUserSessions(userId);
2808
-
return Response.json({ success: true });
2809
+
return new Response(null, { status: 204 });
return handleError(error);
···
2833
-
return Response.json({ success: true });
2834
+
return new Response(null, { status: 204 });
return handleError(error);
···
3016
-
return Response.json(newClass);
3017
+
return Response.json(newClass, { status: 201 });
return handleError(error);
···
return Response.json({ error: result.error }, { status: 400 });
3076
-
return Response.json({ success: true });
3077
+
return new Response(null, { status: 204 });
return handleError(error);
···
3152
-
return Response.json({ success: true, id });
3153
+
return Response.json({ success: true, id }, { status: 201 });
return handleError(error);
···
3202
-
return Response.json({ success: true });
3203
+
return new Response(null, { status: 204 });
return handleError(error);
···
toggleClassArchive(classId, archived);
3230
-
return Response.json({ success: true });
3231
+
return new Response(null, { status: 204 });
return handleError(error);
···
enrollUserInClass(user.id, classId);
3271
-
return Response.json({ success: true });
3272
+
return new Response(null, { status: 201 });
return handleError(error);
···
removeUserFromClass(userId, classId);
3295
-
return Response.json({ success: true });
3296
+
return new Response(null, { status: 204 });
return handleError(error);
···
const meetingTime = createMeetingTime(classId, label);
3340
-
return Response.json(meetingTime);
3341
+
return Response.json(meetingTime, { status: 201 });
return handleError(error);
···
updateMeetingTime(meetingId, label);
3365
-
return Response.json({ success: true });
3366
+
return new Response(null, { status: 204 });
return handleError(error);
···
deleteMeetingTime(meetingId);
3382
-
return Response.json({ success: true });
3383
+
return new Response(null, { status: 204 });
return handleError(error);
···
3430
-
return Response.json({ success: true });
3431
+
return new Response(null, { status: 204 });
return handleError(error);