From e4b9388f02db59606296ce9033d9e0d92caf7def Mon Sep 17 00:00:00 2001 From: Gslmao Date: Sun, 22 Feb 2026 02:39:49 +0530 Subject: [PATCH 1/2] minor fix --- src/app/page.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/app/page.tsx b/src/app/page.tsx index 514a6062..1ec001d9 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -8,6 +8,7 @@ const HomePage = () => { + {/* Happy Birthday Abhi broski, Hope you have an amazing year!!! Love you lots*/} ); }; From b85dea4619c6aba885df812016762cb82a7293fc Mon Sep 17 00:00:00 2001 From: Gslmao Date: Thu, 26 Feb 2026 12:51:53 +0530 Subject: [PATCH 2/2] refactor: breaking up this endpoint --- src/app/api/related-subject/route.ts | 18 +++--------------- src/lib/services/subject.ts | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 src/lib/services/subject.ts diff --git a/src/app/api/related-subject/route.ts b/src/app/api/related-subject/route.ts index 77800cbf..6f374ff6 100644 --- a/src/app/api/related-subject/route.ts +++ b/src/app/api/related-subject/route.ts @@ -1,14 +1,10 @@ +import { getRelatedSubjects } from "@/lib/services/subject"; import { NextResponse, type NextRequest } from "next/server"; -import { connectToDatabase } from "@/lib/database/mongoose"; -import { IRelatedSubject } from "@/interface"; -import RelatedSubject from "@/db/relatedSubjects"; -import { escapeRegExp } from "@/lib/utils/regex"; export const dynamic = "force-dynamic"; export async function GET(req: NextRequest) { try { - await connectToDatabase(); const url = req.nextUrl.searchParams; const subject = url.get("subject"); @@ -18,18 +14,10 @@ export async function GET(req: NextRequest) { { status: 400 }, ); } - - const escapedSubject = escapeRegExp(subject); - const subjects: IRelatedSubject[] = await RelatedSubject.find({ - subject: { $regex: new RegExp(`${escapedSubject}`, "i") }, - }); - - console.log("realted", subjects); + const relatedSubjects = await getRelatedSubjects(subject); return NextResponse.json( - { - related_subjects: subjects[0]?.related_subjects - }, + {related_subjects: relatedSubjects}, { status: 200 }, ); } catch (error) { diff --git a/src/lib/services/subject.ts b/src/lib/services/subject.ts new file mode 100644 index 00000000..4298ba32 --- /dev/null +++ b/src/lib/services/subject.ts @@ -0,0 +1,14 @@ +import { connectToDatabase } from "@/lib/database/mongoose"; +import { IRelatedSubject } from "@/interface"; +import { escapeRegExp } from "@/lib/utils/regex"; +import RelatedSubject from "@/db/relatedSubjects"; + +export async function getRelatedSubjects(subject: string) { + await connectToDatabase(); + const escapedSubject = escapeRegExp(subject); + const subjects: IRelatedSubject[] = await RelatedSubject.find({ + subject: { $regex: new RegExp(`${escapedSubject}`, "i") }, + }); + + return subjects[0]?.related_subjects ?? []; +} \ No newline at end of file