diff --git a/api/src/routes/course.ts b/api/src/routes/course.ts index 5333ab0..375982f 100644 --- a/api/src/routes/course.ts +++ b/api/src/routes/course.ts @@ -17,7 +17,7 @@ courseRouter.get('/', async (req, res) => { eventRouter.get('/', async (req: Request, res: Response) => { try { - let events: CourseEventDetails[] = await getCourseEvents(); + let events = await getCourseEvents(); res.status(200).json(events); } catch (error) { console.error('failed to fetch reports', error); diff --git a/api/src/services/CourseSerivce.ts b/api/src/services/CourseSerivce.ts index dcc735d..f83132a 100644 --- a/api/src/services/CourseSerivce.ts +++ b/api/src/services/CourseSerivce.ts @@ -1,5 +1,5 @@ import pool from "../db" -import { Course, CourseAttendee, CourseEventDetails, RawAttendeeRow } from "@app/shared/types/course" +import { Course, CourseAttendee, CourseEventDetails, CourseEventSummary, RawAttendeeRow } from "@app/shared/types/course" export async function getAllCourses(): Promise { const sql = "SELECT * FROM courses WHERE deleted = false;" @@ -86,8 +86,9 @@ export async function insertCourseEvent(event: CourseEventDetails): Promise { - const sql = "SELECT * FROM course_events;"; - let events: CourseEventDetails[] = await pool.query(sql); +export async function getCourseEvents(): Promise { + const sql = "SELECT E.id, E.course_id, E.event_date, E.created_by, C.name FROM course_events as E LEFT JOIN courses AS C ON E.course_id = C.id;"; + let events: CourseEventSummary[] = await pool.query(sql); + console.log(events); return events; } \ No newline at end of file diff --git a/shared/types/course.ts b/shared/types/course.ts index 4f75ad5..cc3efee 100644 --- a/shared/types/course.ts +++ b/shared/types/course.ts @@ -25,8 +25,10 @@ export interface CourseEventDetails { deleted: boolean | null; // tinyint(4), nullable report_url: string | null; // varchar(2048) remarks: string | null; // text - + attendees: CourseAttendee[] | null; + + created_by: number | null; } @@ -65,4 +67,12 @@ export interface RawAttendeeRow { role_deleted: number | null; role_created_at: string | null; role_updated_at: string | null; +} + +export interface CourseEventSummary { + event_id: number; + course_id: number; + course_name: string; + date: string; + created_by: number; } \ No newline at end of file