diff --git a/api/src/routes/roles.ts b/api/src/routes/roles.ts index 8070314..d77093f 100644 --- a/api/src/routes/roles.ts +++ b/api/src/routes/roles.ts @@ -16,10 +16,16 @@ ur.post('/', [requireMemberState(MemberState.Member), requireRole("17th Administ try { const body = req.body; - assignUserGroup(body.member_id, body.role_id); + await assignUserGroup(body.member_id, body.role_id); res.sendStatus(201); } catch (err) { + if (err?.code === 'ER_DUP_ENTRY') { + return res.status(400).json({ + error: 'Member already has this role', + }); + } + console.error('Insert failed:', err); res.status(500).json({ error: 'Failed to add to group' }); } diff --git a/api/src/services/rolesService.ts b/api/src/services/rolesService.ts index 9e2275d..19eb228 100644 --- a/api/src/services/rolesService.ts +++ b/api/src/services/rolesService.ts @@ -3,7 +3,6 @@ import pool from '../db'; import { Role, RoleSummary } from '@app/shared/types/roles' export async function assignUserGroup(userID: number, roleID: number) { - const sql = `INSERT INTO members_roles (member_id, role_id) VALUES (?, ?);`; const params = [userID, roleID];