added searching and sorting system
This commit is contained in:
@@ -107,7 +107,18 @@ export async function insertCourseEvent(event: CourseEventDetails): Promise<numb
|
||||
}
|
||||
}
|
||||
|
||||
export async function getCourseEvents(): Promise<CourseEventSummary[]> {
|
||||
export async function getCourseEvents(sortDir: string, search: string = ""): Promise<CourseEventSummary[]> {
|
||||
|
||||
let params = [];
|
||||
let searchString = "";
|
||||
if (search !== "") {
|
||||
searchString = `WHERE (C.name LIKE ? OR
|
||||
C.short_name LIKE ? OR
|
||||
M.name LIKE ?) `;
|
||||
const p = `%${search}%`;
|
||||
params.push(p, p, p);
|
||||
}
|
||||
|
||||
const sql = `SELECT
|
||||
E.id AS event_id,
|
||||
E.course_id,
|
||||
@@ -120,8 +131,12 @@ export async function getCourseEvents(): Promise<CourseEventSummary[]> {
|
||||
LEFT JOIN courses AS C
|
||||
ON E.course_id = C.id
|
||||
LEFT JOIN members AS M
|
||||
ON E.created_by = M.id;`;
|
||||
let events: CourseEventSummary[] = await pool.query(sql);
|
||||
ON E.created_by = M.id
|
||||
${searchString}
|
||||
ORDER BY E.event_date ${sortDir};`;
|
||||
console.log(sql)
|
||||
console.log(params)
|
||||
let events: CourseEventSummary[] = await pool.query(sql, params);
|
||||
return events;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user