Skip to content

Commit d144ac8

Browse files
fix: build and bugs
1 parent aa8b08d commit d144ac8

File tree

8 files changed

+27
-24
lines changed

8 files changed

+27
-24
lines changed

src/app/api/papers/count/route.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { connectToDatabase } from "@/lib/mongoose";
33
import Paper from "@/db/papers";
44

55
export const dynamic = "force-dynamic";
6-
76
export async function GET(req: Request) {
87
try {
98
await connectToDatabase();

src/app/api/papers/route.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export async function GET(req: NextRequest) {
1313
const escapeRegExp = (text: string) => {
1414
return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1515
};
16-
const escapedSubject = escapeRegExp(subject!);
16+
const escapedSubject = escapeRegExp(subject ?? "");
1717

1818
if (!subject) {
1919
return NextResponse.json(
@@ -28,7 +28,14 @@ export async function GET(req: NextRequest) {
2828

2929
if (papers.length === 0) {
3030
return NextResponse.json(
31-
{ message: "No papers found for the specified subject" },
31+
{
32+
papers,
33+
uniqueYears: [],
34+
uniqueSlots: [],
35+
uniqueExams: [],
36+
uniqueCampuses: [],
37+
uniqueSemesters: [],
38+
},
3239
{ status: 200 },
3340
);
3441
}

src/app/api/user-papers/route.ts

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,21 @@ import Paper from "@/db/papers";
44

55
export const dynamic = "force-dynamic";
66

7+
interface TransformedPaper {
8+
subject: string;
9+
slots: string[];
10+
}
11+
712
export async function POST(req: Request) {
813
try {
914
await connectToDatabase();
10-
const body = await req.json();
11-
12-
const subjects: string[] = body;
15+
const subjects: string[] = await req.json() as string[];
1316

1417
const usersPapers = await Paper.find({
1518
subject: { $in: subjects },
1619
});
1720

18-
const transformedPapers = usersPapers.reduce((acc, paper) => {
21+
const transformedPapers = usersPapers.reduce<TransformedPaper[]>((acc, paper) => {
1922
const existing = acc.find((item) => item.subject === paper.subject);
2023

2124
if (existing) {
@@ -27,15 +30,7 @@ export async function POST(req: Request) {
2730
return acc;
2831
}, []);
2932

30-
// check duplicates
31-
const seenSubjects = new Set();
32-
const uniquePapers = transformedPapers.filter((paper) => {
33-
if (seenSubjects.has(paper.subject)) return false;
34-
seenSubjects.add(paper.subject);
35-
return true;
36-
});
37-
38-
return NextResponse.json(uniquePapers, {
33+
return NextResponse.json(transformedPapers, {
3934
status: 200,
4035
});
4136
} catch (error) {

src/components/CatalogueContent.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ const CatalogueContent = () => {
8181
const papersData = data.papers;
8282
setFilterOptions(data);
8383
setPapers(papersData);
84-
// Apply filters from URL params
84+
// Apply filters from URL paramsfilterOptions?
8585
const filtered = papersData.filter((paper) => {
8686
const examCondition = selectedExams.length
8787
? selectedExams.includes(paper.exam)

src/components/PapersCarousel.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,9 @@ function PapersCarousel({
6060
setIsLoading(true);
6161
if (carouselType === "users") {
6262
const storedSubjects = JSON.parse(
63-
localStorage.getItem("userSubjects"),
64-
);
65-
const response = await axios.post("/api/user-papers", storedSubjects);
63+
localStorage.getItem("userSubjects") ?? "[]"
64+
) as string[];
65+
const response = await axios.post<IUpcomingPaper []>("/api/user-papers", storedSubjects);
6666
setDisplayPapers(response.data);
6767
} else {
6868
const response = await axios.get<IUpcomingPaper[]>(

src/components/Searchbar/searchbar-child.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ function SearchBarChild({
1515
filtersNotPulled?: () => void;
1616
}) {
1717
const router = useRouter();
18+
const [count, setCount] = useState(0);
1819
const [searchText, setSearchText] = useState("");
1920
const [suggestions, setSuggestions] = useState<string[]>([]);
2021
const suggestionsRef = useRef<HTMLUListElement | null>(null);

src/components/Searchbar/searchbar.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export async function fetchSubjects() {
99
const response = await axios.get<ICourses[]>(
1010
`${process.env.SERVER_URL}/api/course-list`,
1111
);
12+
console.log("Fetched subjects:", response.data);
1213
return response.data.map((course) => course.name);
1314
} catch (err) {
1415
console.error("Error fetching subjects:", err);

src/components/SideBar.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,19 @@ function SideBar({
5757
const exams = filterOptions?.uniqueExams.map((exam) => ({
5858
label: exam,
5959
value: exam,
60-
}));
60+
})) ?? [];
6161
const slots = filterOptions?.uniqueSlots.map((slot) => ({
6262
label: slot,
6363
value: slot,
64-
}));
64+
})) ?? [];
6565
const years = filterOptions?.uniqueYears.map((year) => ({
6666
label: year,
6767
value: year,
68-
}));
68+
})) ?? [];
6969
const semesters = filterOptions?.uniqueSemesters.map((semester) => ({
7070
label: semester,
7171
value: semester,
72-
}));
72+
})) ?? [];
7373
// const campuses = filterOptions?.uniqueCampuses.map((campus) => ({
7474
// label: campus,
7575
// value: campus,

0 commit comments

Comments
 (0)