Upgraded handling of duplicate member roles Close #56

This commit is contained in:
2025-12-18 22:38:36 -05:00
parent 80786f996f
commit 8903baef52
2 changed files with 7 additions and 2 deletions

View File

@@ -16,10 +16,16 @@ ur.post('/', [requireMemberState(MemberState.Member), requireRole("17th Administ
try { try {
const body = req.body; const body = req.body;
assignUserGroup(body.member_id, body.role_id); await assignUserGroup(body.member_id, body.role_id);
res.sendStatus(201); res.sendStatus(201);
} catch (err) { } catch (err) {
if (err?.code === 'ER_DUP_ENTRY') {
return res.status(400).json({
error: 'Member already has this role',
});
}
console.error('Insert failed:', err); console.error('Insert failed:', err);
res.status(500).json({ error: 'Failed to add to group' }); res.status(500).json({ error: 'Failed to add to group' });
} }

View File

@@ -3,7 +3,6 @@ import pool from '../db';
import { Role, RoleSummary } from '@app/shared/types/roles' import { Role, RoleSummary } from '@app/shared/types/roles'
export async function assignUserGroup(userID: number, roleID: number) { export async function assignUserGroup(userID: number, roleID: number) {
const sql = `INSERT INTO members_roles (member_id, role_id) VALUES (?, ?);`; const sql = `INSERT INTO members_roles (member_id, role_id) VALUES (?, ?);`;
const params = [userID, roleID]; const params = [userID, roleID];