integrated the new logger across the entire API
This commit is contained in:
@@ -7,44 +7,69 @@ import pool from '../db';
|
||||
import { requireLogin, requireMemberState, requireRole } from '../middleware/auth';
|
||||
import { assignUserGroup, createGroup, getAllRoles, getRole, getUsersWithRole } from '../services/db/rolesService';
|
||||
import { Request, Response } from 'express';
|
||||
import { logger } from '../services/logging/logger';
|
||||
|
||||
r.use(requireLogin)
|
||||
ur.use(requireLogin)
|
||||
|
||||
//manually assign a member to a group
|
||||
ur.post('/', [requireMemberState(MemberState.Member), requireRole("17th Administrator")], async (req, res) => {
|
||||
ur.post('/', [requireMemberState(MemberState.Member), requireRole("17th Administrator")], async (req: Request, res) => {
|
||||
const body = req.body;
|
||||
|
||||
try {
|
||||
const body = req.body;
|
||||
|
||||
await assignUserGroup(body.member_id, body.role_id);
|
||||
|
||||
logger.info('app', 'User assigned role', { user: body.member_id, role: body.role_id, assigner: req.user.id })
|
||||
res.sendStatus(201);
|
||||
} catch (err) {
|
||||
if (err?.code === 'ER_DUP_ENTRY') {
|
||||
} catch (error) {
|
||||
if (error?.code === 'ER_DUP_ENTRY') {
|
||||
return res.status(400).json({
|
||||
error: 'Member already has this role',
|
||||
});
|
||||
}
|
||||
|
||||
console.error('Insert failed:', err);
|
||||
logger.error(
|
||||
'app',
|
||||
'Failed to assign role',
|
||||
{
|
||||
user: body.member_id,
|
||||
role: body.role_id,
|
||||
assigner: req.user.id,
|
||||
error: error instanceof Error ? error.message : String(error),
|
||||
stack: error instanceof Error ? error.stack : undefined,
|
||||
}
|
||||
);
|
||||
res.status(500).json({ error: 'Failed to add to group' });
|
||||
}
|
||||
});
|
||||
|
||||
//manually remove member from group
|
||||
ur.delete('/', [requireMemberState(MemberState.Member), requireRole("17th Administrator")], async (req, res) => {
|
||||
ur.delete('/', [requireMemberState(MemberState.Member), requireRole("17th Administrator")], async (req: Request, res: Response) => {
|
||||
const body = req.body;
|
||||
|
||||
try {
|
||||
const body = req.body;
|
||||
|
||||
const sql = 'DELETE FROM members_roles WHERE member_id = ? AND role_id = ?'
|
||||
await pool.query(sql, [body.member_id, body.role_id])
|
||||
|
||||
logger.info('app', 'User removed role', { user: body.member_id, role: body.role_id, assigner: req.user.id })
|
||||
|
||||
res.sendStatus(200);
|
||||
}
|
||||
catch (err) {
|
||||
console.error("delete failed: ", err)
|
||||
catch (error) {
|
||||
logger.error(
|
||||
'app',
|
||||
'Failed to remove role',
|
||||
{
|
||||
user: body.member_id,
|
||||
role: body.role_id,
|
||||
assigner: req.user.id,
|
||||
error: error instanceof Error ? error.message : String(error),
|
||||
stack: error instanceof Error ? error.stack : undefined,
|
||||
}
|
||||
);
|
||||
res.status(500).json({ error: 'Failed to remove from group' });
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
@@ -52,9 +77,18 @@ ur.delete('/', [requireMemberState(MemberState.Member), requireRole("17th Admini
|
||||
r.get('/', [requireMemberState(MemberState.Member)], async (req, res) => {
|
||||
try {
|
||||
const roles = await getAllRoles();
|
||||
//@ts-ignore
|
||||
test();
|
||||
res.status(200).json(roles);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
} catch (error) {
|
||||
logger.error(
|
||||
'app',
|
||||
'Failed to get all roles',
|
||||
{
|
||||
error: error instanceof Error ? error.message : String(error),
|
||||
stack: error instanceof Error ? error.stack : undefined,
|
||||
}
|
||||
);
|
||||
res.sendStatus(500);
|
||||
}
|
||||
});
|
||||
@@ -63,8 +97,16 @@ r.get('/:id/members', [requireMemberState(MemberState.Member)], async (req: Requ
|
||||
try {
|
||||
const members = await getUsersWithRole(Number(req.params.id));
|
||||
res.status(200).json(members);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
} catch (error) {
|
||||
logger.error(
|
||||
'app',
|
||||
'Failed to get role members',
|
||||
{
|
||||
role: req.params.id,
|
||||
error: error instanceof Error ? error.message : String(error),
|
||||
stack: error instanceof Error ? error.stack : undefined,
|
||||
}
|
||||
);
|
||||
res.sendStatus(500);
|
||||
}
|
||||
})
|
||||
@@ -74,8 +116,16 @@ r.get('/:id', [requireMemberState(MemberState.Member)], async (req: Request, res
|
||||
try {
|
||||
const role = await getRole(Number(req.params.id));
|
||||
res.status(200).json(role);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
} catch (error) {
|
||||
logger.error(
|
||||
'app',
|
||||
'Failed to get role members',
|
||||
{
|
||||
role: req.params.id,
|
||||
error: error instanceof Error ? error.message : String(error),
|
||||
stack: error instanceof Error ? error.stack : undefined,
|
||||
}
|
||||
);
|
||||
res.sendStatus(500);
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user