Skip to content

Commit cd5e5c8

Browse files
committed
Remove the unnecessary getOfferingEvents endpoint
1 parent 68e1408 commit cd5e5c8

File tree

3 files changed

+1
-111
lines changed

3 files changed

+1
-111
lines changed

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

Lines changed: 0 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -4,92 +4,6 @@ import { supabase } from "../db/setupDb";
44
import { generateWeeklyCourseEvents } from "./eventsController";
55

66
export default {
7-
/**
8-
* Get a list of offering events based on offering ids, semester start date, and semester end date.
9-
*
10-
* @param {Request} req - The request object containing query parameters.
11-
* @param {Response} res - The response object to send the offering events data.
12-
* @returns {Promise<Response>} - The response object with the offering events data.
13-
*/
14-
getOfferingEvents: asyncHandler(async (req: Request, res: Response) => {
15-
const { offering_ids, semester_start_date, semester_end_date } = req.query;
16-
17-
// Retrieve the authenticated user
18-
const user_id = (req as any).user.id;
19-
20-
// Check if semester start and end dates are provided
21-
if (!semester_start_date || !semester_end_date) {
22-
return res.status(400).json({
23-
error: "Semester start and end dates are required.",
24-
});
25-
}
26-
27-
if (!offering_ids) {
28-
return res.status(200).json([]); // Return an empty array if no offering_ids are provided
29-
}
30-
31-
const offering_ids_array = (offering_ids as string).split(",");
32-
let eventsToInsert: any[] = [];
33-
34-
const promises = offering_ids_array.map(async (offering_id) => {
35-
// Get the offering data
36-
const { data: offeringData, error: offeringError } = await supabase
37-
.schema("course")
38-
.from("offerings")
39-
.select("*")
40-
.eq("id", offering_id)
41-
.maybeSingle();
42-
43-
if (offeringError) {
44-
return res.status(400).json({ error: offeringError.message });
45-
}
46-
47-
if (!offeringData || offeringData.length === 0) {
48-
return res.status(400).json({
49-
error: "Invalid offering_id or course offering not found.",
50-
});
51-
}
52-
53-
// Generate event details
54-
const courseEventName = ` ${offeringData.code} - ${offeringData.meeting_section} `;
55-
let courseDay = offeringData.day;
56-
let courseStartTime = offeringData.start;
57-
let courseEndTime = offeringData.end;
58-
59-
// Some offerings do not have a day, start time, or end time in the database, so we set default values
60-
if (!courseDay || !courseStartTime || !courseEndTime) {
61-
courseDay = "MO";
62-
courseStartTime = "08:00:00";
63-
courseEndTime = "09:00:00";
64-
}
65-
66-
const mockCalendarId = "1";
67-
const events = generateWeeklyCourseEvents(
68-
user_id,
69-
courseEventName,
70-
courseDay,
71-
courseStartTime,
72-
courseEndTime,
73-
mockCalendarId,
74-
offering_id as string,
75-
semester_start_date as string,
76-
semester_end_date as string,
77-
);
78-
eventsToInsert = [...eventsToInsert, ...events];
79-
});
80-
81-
await Promise.all(promises);
82-
83-
if (eventsToInsert.length === 0) {
84-
return res.status(400).json({
85-
error: "Failed to generate course events",
86-
});
87-
}
88-
89-
// Return the generated events
90-
return res.status(200).json(eventsToInsert);
91-
}),
92-
937
/**
948
* Get a list of offerings based on course code and semester.
959
*

course-matrix/backend/src/routes/courseRouter.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,6 @@ coursesRouter.get(
3333
*/
3434
departmentsRouter.get("/", authHandler, departmentsController.getDepartments);
3535

36-
/**
37-
* Route to get a list of events for an offering.
38-
* @route GET /events/:offering_id
39-
* @middleware authHandler - Middleware to check if the user is authenticated.
40-
*/
41-
offeringsRouter.get(
42-
"/events",
43-
authHandler,
44-
offeringsController.getOfferingEvents,
45-
);
46-
4736
/**
4837
* Route to get a list of offerings.
4938
* @route GET /

course-matrix/frontend/src/api/offeringsApiSlice.ts

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,6 @@ import { OFFERINGS_URL } from "./config";
44
// Endpoints for /api/offerings
55
export const offeringsApiSlice = apiSlice.injectEndpoints({
66
endpoints: (builder) => ({
7-
getOfferingEvents: builder.query({
8-
query: (params) => ({
9-
url: `${OFFERINGS_URL}/events`,
10-
method: "GET",
11-
params: params,
12-
headers: {
13-
"Content-Type": "application/json",
14-
Accept: "application/json, text/plain, */*",
15-
},
16-
providesTags: ["OfferingEvents"],
17-
credentials: "include",
18-
}),
19-
}),
207
getOfferings: builder.query({
218
query: (params) => ({
229
url: `${OFFERINGS_URL}`,
@@ -33,5 +20,5 @@ export const offeringsApiSlice = apiSlice.injectEndpoints({
3320
}),
3421
});
3522

36-
export const { useGetOfferingsQuery, useGetOfferingEventsQuery } =
23+
export const { useGetOfferingsQuery } =
3724
offeringsApiSlice;

0 commit comments

Comments
 (0)