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

@@ -3,6 +3,7 @@ import { getAllCourses, getCourseEventAttendees, getCourseEventDetails, getCours
import { Request, Response, Router } from "express";
import { requireLogin, requireMemberState } from "../middleware/auth";
import { MemberState } from "@app/shared/types/member";
import { logger } from "../services/logging/logger";
const cr = Router();
const er = Router();
@@ -16,9 +17,16 @@ cr.get('/', async (req, res) => {
try {
const courses = await getAllCourses();
res.status(200).json(courses);
} catch (err) {
console.error('failed to fetch courses', err);
res.status(500).json('failed to fetch courses\n' + err);
} catch (error) {
logger.error(
'app',
'Failed to fetch courses',
{
error: error instanceof Error ? error.message : String(error),
stack: error instanceof Error ? error.stack : undefined,
}
);
res.status(500).json('failed to fetch courses');
}
})
@@ -26,12 +34,20 @@ cr.get('/roles', async (req, res) => {
try {
const roles = await getCourseEventRoles();
res.status(200).json(roles);
} catch (err) {
console.error('failed to fetch course roles', err);
res.status(500).json('failed to fetch course roles\n' + err);
} catch (error) {
logger.error(
'app',
'Failed to fetch course roles',
{
error: error instanceof Error ? error.message : String(error),
stack: error instanceof Error ? error.stack : undefined,
}
);
res.status(500).json('failed to fetch course roles');
}
})
//get event list
er.get('/', async (req: Request, res: Response) => {
try {
const allowedSorts = new Map([
@@ -55,7 +71,14 @@ er.get('/', async (req: Request, res: Response) => {
let events = await getCourseEvents(sortDir, search, page, pageSize);
res.status(200).json(events);
} catch (error) {
console.error('failed to fetch reports', error);
logger.error(
'app',
'Failed to fetch course events',
{
error: error instanceof Error ? error.message : String(error),
stack: error instanceof Error ? error.stack : undefined,
}
);
res.status(500).json(error);
}
});
@@ -65,7 +88,14 @@ er.get('/:id', async (req: Request, res: Response) => {
let out = await getCourseEventDetails(Number(req.params.id));
res.status(200).json(out);
} catch (error) {
console.error('failed to fetch report', error);
logger.error(
'app',
'Failed to fetch course event',
{
error: error instanceof Error ? error.message : String(error),
stack: error instanceof Error ? error.stack : undefined,
}
);
res.status(500).json(error);
}
});
@@ -74,9 +104,16 @@ er.get('/attendees/:id', async (req: Request, res: Response) => {
try {
const attendees: CourseAttendee[] = await getCourseEventAttendees(Number(req.params.id));
res.status(200).json(attendees);
} catch (err) {
console.error('failed to fetch attendees', err);
res.status(500).json("failed to fetch attendees\n" + err);
} catch (error) {
logger.error(
'app',
'Failed to fetch course event attendees',
{
error: error instanceof Error ? error.message : String(error),
stack: error instanceof Error ? error.stack : undefined,
}
);
res.status(500).json("failed to fetch attendees");
}
})
@@ -87,9 +124,19 @@ er.post('/', async (req: Request, res: Response) => {
data.created_by = posterID;
data.event_date = new Date(data.event_date);
const id = await insertCourseEvent(data);
logger.info('app', 'Training report posted', { user: posterID, report: id })
res.status(201).json(id);
} catch (error) {
console.error('failed to post training', error);
logger.error(
'app',
'Failed to post training report',
{
user: posterID,
error: error instanceof Error ? error.message : String(error),
stack: error instanceof Error ? error.stack : undefined,
}
);
res.status(500).json("failed to post training\n" + error)
}
})