added API support for posting training reports
This commit is contained in:
@@ -18,7 +18,7 @@ function buildAttendee(row: RawAttendeeRow): CourseAttendee {
|
||||
updated_at: row.updated_at,
|
||||
remarks: row.remarks,
|
||||
attendee_role_id: row.attendee_role_id,
|
||||
|
||||
|
||||
role: row.role_id
|
||||
? {
|
||||
id: row.role_id,
|
||||
@@ -44,9 +44,9 @@ export async function getCourseEventAttendees(id: number): Promise<CourseAttende
|
||||
FROM course_attendees ca
|
||||
LEFT JOIN course_attendee_roles ar ON ar.id = ca.attendee_role_id
|
||||
WHERE ca.course_event_id = ?;`;
|
||||
|
||||
const res:RawAttendeeRow[] = await pool.query(sql, [id]);
|
||||
|
||||
|
||||
const res: RawAttendeeRow[] = await pool.query(sql, [id]);
|
||||
|
||||
return res.map((row) => buildAttendee(row))
|
||||
}
|
||||
|
||||
@@ -56,4 +56,32 @@ export async function getCourseEventDetails(id: number): Promise<CourseEventDeta
|
||||
let event = rows[0];
|
||||
event.attendees = await getCourseEventAttendees(id);
|
||||
return event;
|
||||
}
|
||||
|
||||
export async function insertCourseEvent(event: CourseEventDetails): Promise<number> {
|
||||
const con = await pool.getConnection();
|
||||
try {
|
||||
await con.beginTransaction();
|
||||
const res = await con.execute("INSERT INTO course_events (course_id, event_date, remarks) VALUES (?, ?, ?);", [event.course_id, event.event_date, event.remarks]);
|
||||
var eventID: number = res.insertId;
|
||||
|
||||
for (const attendee of event.attendees) {
|
||||
await con.execute(`INSERT INTO course_attendees (
|
||||
attendee_id,
|
||||
course_event_id,
|
||||
attendee_role_id,
|
||||
passed,
|
||||
remarks
|
||||
)
|
||||
VALUES (?, ?, ?, ?, ?);`, [attendee.attendee_id, eventID, attendee.attendee_role_id, attendee.passed, attendee.remarks]);
|
||||
|
||||
}
|
||||
await con.commit();
|
||||
} catch (error) {
|
||||
await con.rollback();
|
||||
throw error;
|
||||
} finally {
|
||||
await con.release();
|
||||
return eventID;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user