integrated the new logger across the entire API

This commit is contained in:
2025-12-31 21:45:38 -05:00
parent 510d4a13ac
commit 9f895a202d
10 changed files with 670 additions and 125 deletions

View File

@@ -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);
}
})