diff --git a/src/app/api/related-subject/route.ts b/src/app/api/related-subject/route.ts index 77800cb..6f374ff 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/app/page.tsx b/src/app/page.tsx index 514a606..1ec001d 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*/} ); }; diff --git a/src/lib/services/subject.ts b/src/lib/services/subject.ts new file mode 100644 index 0000000..4298ba3 --- /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