From 4b37a40c3568a3e28ce991457e96092a6f3d4c54 Mon Sep 17 00:00:00 2001 From: Sam27 Date: Sat, 18 Apr 2026 01:19:07 -0500 Subject: [PATCH 1/3] fix: await Grade.findOneAndUpdate in grades POST handler , line 76 --- app/api/grades/route.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/api/grades/route.ts b/app/api/grades/route.ts index b9da63d..d37502d 100644 --- a/app/api/grades/route.ts +++ b/app/api/grades/route.ts @@ -73,7 +73,7 @@ export async function POST(req: NextRequest) { const max = data.maxMarks! const term = data.term ?? 'Term 1' - const grade = Grade.findOneAndUpdate( + const grade = await Grade.findOneAndUpdate( { teacherId: userId, studentId: data.studentId, subject: data.subject, term }, { $set: { ...data, term, teacherId: userId, grade: calcGrade(data.marks, max) } }, { upsert: true, new: true } From c02ab721e14d5cc9963ba5540048b2f6723b91ff Mon Sep 17 00:00:00 2001 From: Sam27 Date: Sat, 18 Apr 2026 01:23:07 -0500 Subject: [PATCH 2/3] remmoved error stack trace from grades API response --- app/api/grades/route.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/api/grades/route.ts b/app/api/grades/route.ts index d37502d..f7f8b5b 100644 --- a/app/api/grades/route.ts +++ b/app/api/grades/route.ts @@ -48,7 +48,7 @@ export async function GET(req: NextRequest) { return NextResponse.json(grades) } catch (error) { console.error('GET /api/grades error:', error instanceof Error ? error.message : error) - return NextResponse.json({ error: error instanceof Error ? error.stack : 'Internal server error' }, { status: 500 }) + return NextResponse.json({ error: 'Internal server error' }, { status: 500 }) } } @@ -83,6 +83,6 @@ export async function POST(req: NextRequest) { if (error instanceof Error) { console.error('POST /api/grades error:', error.message) } - return NextResponse.json({ error: error instanceof Error ? error.stack : 'Internal server error' }, { status: 500 }) + return NextResponse.json({ error: 'Internal server error' }, { status: 500 }) } } From 538dea851fd8b2da4ce5d61e40751b0c2f455c5b Mon Sep 17 00:00:00 2001 From: Sam27 Date: Sat, 18 Apr 2026 01:41:40 -0500 Subject: [PATCH 3/3] maxMarks to 100 when not provided to prevent NaN / NA grade --- app/api/grades/route.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/api/grades/route.ts b/app/api/grades/route.ts index f7f8b5b..79195a7 100644 --- a/app/api/grades/route.ts +++ b/app/api/grades/route.ts @@ -70,12 +70,12 @@ export async function POST(req: NextRequest) { if (!parsed.success) return NextResponse.json({ error: parsed.error.flatten() }, { status: 400 }) const data = parsed.data - const max = data.maxMarks! + const max = data.maxMarks ?? 100 const term = data.term ?? 'Term 1' const grade = await Grade.findOneAndUpdate( { teacherId: userId, studentId: data.studentId, subject: data.subject, term }, - { $set: { ...data, term, teacherId: userId, grade: calcGrade(data.marks, max) } }, + { $set: { ...data, maxMarks: max, term, teacherId: userId, grade: calcGrade(data.marks, max) } }, { upsert: true, new: true } ) return NextResponse.json(grade, { status: 201 })