diff --git a/api/src/routes/applications.ts b/api/src/routes/applications.ts index 7e3c863..3c78aeb 100644 --- a/api/src/routes/applications.ts +++ b/api/src/routes/applications.ts @@ -207,8 +207,9 @@ router.post('/:id/comment', [requireLogin], async (req: Request, res: Response) ) VALUES(?, ?, ?);` + try { - const conn = await pool.getConnection(); + var conn = await pool.getConnection(); const result = await conn.query(sql, [appID, user.id, data]) console.log(result) @@ -232,6 +233,8 @@ VALUES(?, ?, ?);` } catch (err) { console.error('Comment failed:', err); res.status(500).json({ error: 'Could not post comment' }); + } finally { + conn.release(); } }); @@ -252,7 +255,7 @@ router.post('/:id/adminComment', [requireLogin, requireRole("Recruiter")], async VALUES(?, ?, ?, 1);` try { - const conn = await pool.getConnection(); + var conn = await pool.getConnection(); const result = await conn.query(sql, [appID, user.id, data]) console.log(result) @@ -277,6 +280,8 @@ VALUES(?, ?, ?, 1);` } catch (err) { console.error('Comment failed:', err); res.status(500).json({ error: 'Could not post comment' }); + } finally { + conn.release(); } }); diff --git a/api/src/routes/auth.ts b/api/src/routes/auth.ts index 4851d63..d688290 100644 --- a/api/src/routes/auth.ts +++ b/api/src/routes/auth.ts @@ -34,8 +34,9 @@ passport.use(new OpenIDConnectStrategy({ // console.log('id_token claims:', JSON.stringify(jwtClaims, null, 2)); // console.log('preferred_username:', jwtClaims?.preferred_username); - const con = await pool.getConnection(); try { + var con = await pool.getConnection(); + await con.beginTransaction(); //lookup existing user @@ -111,10 +112,11 @@ passport.deserializeUser(function (user, cb) { const memberID = user.memberId as number; - const con = await pool.getConnection(); var userData: { id: number, name: string, roles: Role[], state: MemberState }; try { + var con = await pool.getConnection(); + let userResults = await con.query(`SELECT id, name FROM members WHERE id = ?;`, [memberID]) userData = userResults[0]; let userRoles = await getUserRoles(memberID); diff --git a/api/src/routes/roles.ts b/api/src/routes/roles.ts index 3444b03..4b692af 100644 --- a/api/src/routes/roles.ts +++ b/api/src/routes/roles.ts @@ -45,7 +45,7 @@ ur.delete('/', [requireMemberState(MemberState.Member), requireRole("17th Admini //get all roles r.get('/', [requireMemberState(MemberState.Member)], async (req, res) => { try { - const con = await pool.getConnection(); + var con = await pool.getConnection(); // Get all roles const roles = await con.query('SELECT * FROM roles;'); @@ -73,11 +73,12 @@ r.get('/', [requireMemberState(MemberState.Member)], async (req, res) => { members: roleIdToMembers[role.id] || [] })); - con.release(); res.json(result); } catch (err) { console.error(err); res.status(500).json({ error: 'Internal server error' }); + } finally { + con.release(); } }); diff --git a/api/src/services/CourseSerivce.ts b/api/src/services/CourseSerivce.ts index 1cadc31..f365da6 100644 --- a/api/src/services/CourseSerivce.ts +++ b/api/src/services/CourseSerivce.ts @@ -79,9 +79,9 @@ export async function getCourseEventDetails(id: number): Promise { - console.log(event); - const con = await pool.getConnection(); try { + var con = await pool.getConnection(); + await con.beginTransaction(); const res = await con.query("INSERT INTO course_events (course_id, event_date, remarks, created_by) VALUES (?, ?, ?, ?);", [event.course_id, toDateTime(event.event_date), event.remarks, event.created_by]); var eventID: number = res.insertId; @@ -98,12 +98,12 @@ export async function insertCourseEvent(event: CourseEventDetails): Promise