Skip to content

Commit 432d6c2

Browse files
committed
Update incorrect file changes
1 parent 9b29e89 commit 432d6c2

File tree

13 files changed

+35
-136
lines changed

13 files changed

+35
-136
lines changed

course-matrix/backend/jest.config.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,8 @@ import type { Config } from "jest";
22

33
const config: Config = {
44
preset: "ts-jest",
5-
moduleNameMapper: {
6-
"\\.(css|scss)$": "identity-obj-proxy",
7-
"^.+\\.svg": "<rootDir>/tests/mocks/svgMock.tsx",
8-
},
5+
moduleNameMapper: { "\\.(css|scss)$": "identity-obj-proxy" },
96
// to obtain access to the matchers.
10-
setupFilesAfterEnv: ["<rootDir>/tests/setupTests.ts"],
117
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
128
modulePaths: ["<rootDir>"],
139
testEnvironment: "jsdom",

course-matrix/backend/src/controllers/timetablesController.ts

Lines changed: 17 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -18,51 +18,26 @@ export default {
1818
const user_id = (req as any).user.id;
1919

2020
//Retrieve timetable title
21-
const { timetable_title, semester, favorite = false } = req.body;
22-
if (!timetable_title || !semester) {
23-
return res
24-
.status(400)
25-
.json({ error: "timetable title and semester are required" });
21+
const { timetable_title, semester } = req.body;
22+
if (!timetable_title) {
23+
return res.status(400).json({ error: "timetable title is required" });
2624
}
2725

28-
// Check if a timetable with the same title already exist for this user
29-
const { data: existingTimetable, error: existingTimetableError } =
30-
await supabase
31-
.schema("timetable")
32-
.from("timetables")
33-
.select("id")
34-
.eq("user_id", user_id)
35-
.eq("timetable_title", timetable_title)
36-
.maybeSingle();
37-
38-
if (existingTimetableError) {
39-
return res.status(400).json({ error: existingTimetableError.message });
40-
}
41-
42-
if (existingTimetable) {
26+
if (!semester) {
4327
return res
4428
.status(400)
45-
.json({ error: "A timetable with this title already exist" });
29+
.json({ error: "timetable semester is required" });
4630
}
4731

4832
//Create query to insert the user_id and timetable_title into the db
4933
let insertTimetable = supabase
5034
.schema("timetable")
5135
.from("timetables")
52-
.insert([
53-
{
54-
user_id,
55-
timetable_title,
56-
semester,
57-
favorite,
58-
},
59-
])
60-
.select()
61-
.single();
36+
.insert([{ user_id, timetable_title, semester }])
37+
.select();
6238

6339
const { data: timetableData, error: timetableError } =
6440
await insertTimetable;
65-
6641
if (timetableError) {
6742
return res.status(400).json({ error: timetableError.message });
6843
}
@@ -116,11 +91,11 @@ export default {
11691
const { id } = req.params;
11792

11893
//Retrieve timetable title
119-
const { timetable_title, semester, favorite } = req.body;
120-
if (!timetable_title && !semester && favorite === undefined) {
94+
const { timetable_title, semester } = req.body;
95+
if (!timetable_title && !semester) {
12196
return res.status(400).json({
12297
error:
123-
"New timetable title or semester or updated favorite status is required when updating a timetable",
98+
"New timetable title or semester is required when updating a timetable",
12499
});
125100
}
126101

@@ -137,34 +112,17 @@ export default {
137112
.eq("user_id", user_id)
138113
.maybeSingle();
139114

140-
if (timetableUserError || !timetableUserData)
141-
return res
142-
.status(400)
143-
.json({ error: "Timetable not found or unauthorized" });
144-
145-
// Check for duplicate timetable title
146-
if (timetable_title) {
147-
const { data: existingTimetable, error: existingTimetableError } =
148-
await supabase
149-
.schema("timetable")
150-
.from("timetables")
151-
.select("*")
152-
.eq("user_id", user_id)
153-
.eq("timetable_title", timetable_title)
154-
.neq("id", id)
155-
.maybeSingle();
156-
157-
if (existingTimetable) {
158-
return res
159-
.status(400)
160-
.json({ error: "A timetable this title already exist" });
161-
}
115+
if (timetableUserError)
116+
return res.status(400).json({ error: timetableUserError.message });
117+
118+
//Validate timetable validity:
119+
if (!timetableUserData || timetableUserData.length === 0) {
120+
return res.status(404).json({ error: "Calendar id not found" });
162121
}
163122

164123
let updateData: any = {};
165124
if (timetable_title) updateData.timetable_title = timetable_title;
166125
if (semester) updateData.semester = semester;
167-
if (favorite !== undefined) updateData.favorite = favorite;
168126

169127
//Update timetable title, for authenticated user only
170128
let updateTimetableQuery = supabase
@@ -173,8 +131,7 @@ export default {
173131
.update(updateData)
174132
.eq("id", id)
175133
.eq("user_id", user_id)
176-
.select()
177-
.single();
134+
.select();
178135

179136
const { data: timetableData, error: timetableError } =
180137
await updateTimetableQuery;

course-matrix/backend/src/utils/convert-breadth-requirement.ts

Lines changed: 0 additions & 9 deletions
This file was deleted.

course-matrix/backend/src/utils/convert-year-level.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.

course-matrix/backend/tests/mocks/svgMock.tsx

Lines changed: 0 additions & 2 deletions
This file was deleted.

course-matrix/backend/tests/setupTests.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

course-matrix/backend/tsconfig.app.json

Lines changed: 0 additions & 31 deletions
This file was deleted.

course-matrix/frontend/jest.config.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,8 @@ import type { Config } from "jest";
22

33
const config: Config = {
44
preset: "ts-jest",
5-
moduleNameMapper: {
6-
"\\.(css|scss)$": "identity-obj-proxy",
7-
"^.+\\.svg": "<rootDir>/tests/mocks/svgMock.tsx",
8-
},
5+
moduleNameMapper: { "\\.(css|scss)$": "identity-obj-proxy" },
96
// to obtain access to the matchers.
10-
setupFilesAfterEnv: ["<rootDir>/tests/setupTests.ts"],
117
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
128
modulePaths: ["<rootDir>"],
139
testEnvironment: "jsdom",

course-matrix/frontend/src/pages/TimetableBuilder/TimetableBuilder.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,9 @@ const TimetableBuilder = () => {
104104
const [isCustomSettingsOpen, setIsCustomSettingsOpen] = useState(false);
105105
const [filters, setFilters] = useState<FilterForm | null>(null);
106106
const [showFilters, setShowFilters] = useState(false);
107-
const [timetableId, setTimetableId] = useState(-1);
107+
const [timetableId, setTimetableId] = useState(
108+
editingTimetableId ? parseInt(editingTimetableId) : 0
109+
);
108110

109111
const noSearchAndFilter = () => {
110112
return !searchQuery && !filters;
@@ -120,7 +122,7 @@ const TimetableBuilder = () => {
120122
});
121123

122124
const { data: eventsData, isLoading: eventsLoading } = useGetEventsQuery(
123-
timetableId,
125+
timetableId
124126
) as {
125127
data: { courseEvents: unknown[]; userEvents: unknown[] };
126128
isLoading: boolean;
@@ -254,7 +256,7 @@ const TimetableBuilder = () => {
254256
<SelectItem key={value} value={value}>
255257
{value}
256258
</SelectItem>
257-
),
259+
)
258260
)}
259261
</SelectContent>
260262
</Select>

course-matrix/frontend/tests/mocks/svgMock.tsx

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)