full API ts transition and sentry not reporting fix

This commit is contained in:
2025-12-14 13:52:32 -05:00
parent 84392591d1
commit 7aaeab5243
10 changed files with 54 additions and 60 deletions

View File

@@ -1,9 +1,9 @@
const dotenv = require('dotenv')
import dotenv = require('dotenv');
dotenv.config();
const express = require('express')
const cors = require('cors')
const morgan = require('morgan')
import express = require('express');
import cors = require('cors');
import morgan = require('morgan');
const app = express()
app.use(morgan('dev'))
@@ -19,7 +19,7 @@ app.set('trust proxy', 1);
const port = process.env.SERVER_PORT;
//glitchtip setup
const sentry = require('@sentry/node');
import sentry = require('@sentry/node');
if (process.env.DISABLE_GLITCHTIP === "true") {
console.log("Glitchtip disabled")
} else {
@@ -27,14 +27,14 @@ if (process.env.DISABLE_GLITCHTIP === "true") {
let release = process.env.APPLICATION_VERSION;
let environment = process.env.APPLICATION_ENVIRONMENT;
console.log(release, environment)
sentry.init({ dsn: dsn, release: release, environment: environment });
sentry.init({ dsn: dsn, release: release, environment: environment, integrations: [sentry.captureConsoleIntegration({levels: ['error']})] });
console.log("Glitchtip initialized");
}
//session setup
const path = require('path')
const session = require('express-session')
const passport = require('passport')
import path = require('path');
import session = require('express-session');
import passport = require('passport');
const SQLiteStore = require('connect-sqlite3')(session);
app.use(session({
@@ -51,23 +51,21 @@ app.use(session({
app.use(passport.authenticate('session'));
// Mount route modules
const applicationsRouter = require('./routes/applications');
const { memberRanks, ranks } = require('./routes/ranks');
const members = require('./routes/members');
const loaHandler = require('./routes/loa')
const { status, memberStatus } = require('./routes/statuses')
const authRouter = require('./routes/auth')
const { roles, memberRoles } = require('./routes/roles');
const { courseRouter, eventRouter } = require('./routes/course');
const { calendarRouter } = require('./routes/calendar')
const morgan = require('morgan');
const { env } = require('process');
import { applicationRouter } from './routes/applications';
import { memberRanks, ranks } from './routes/ranks';
import { memberRouter } from './routes/members';
import { loaRouter } from './routes/loa';
import { status, memberStatus } from './routes/statuses';
import { authRouter } from './routes/auth';
import { roles, memberRoles } from './routes/roles';
import { courseRouter, eventRouter } from './routes/course';
import { calendarRouter } from './routes/calendar';
app.use('/application', applicationsRouter);
app.use('/application', applicationRouter);
app.use('/ranks', ranks);
app.use('/memberRanks', memberRanks);
app.use('/members', members);
app.use('/loa', loaHandler);
app.use('/members', memberRouter);
app.use('/loa', loaRouter);
app.use('/status', status)
app.use('/memberStatus', memberStatus)
app.use('/roles', roles)

View File

@@ -291,5 +291,4 @@ router.post('/restart', async (req: Request, res: Response) => {
}
})
module.exports = router;
export const applicationRouter = router;

View File

@@ -143,5 +143,4 @@ declare global {
}
module.exports = router;
export const authRouter = router;

View File

@@ -116,5 +116,4 @@ r.put('/', [requireLogin, requireMemberState(MemberState.Member)], async (req: R
}
})
module.exports.calendarRouter = r;
export const calendarRouter = r;

View File

@@ -4,15 +4,15 @@ import { Request, Response, Router } from "express";
import { requireLogin, requireMemberState } from "../middleware/auth";
import { MemberState } from "@app/shared/types/member";
const courseRouter = Router();
const eventRouter = Router();
const cr = Router();
const er = Router();
courseRouter.use(requireLogin)
eventRouter.use(requireLogin)
courseRouter.use(requireMemberState(MemberState.Member))
eventRouter.use(requireMemberState(MemberState.Member))
cr.use(requireLogin)
er.use(requireLogin)
cr.use(requireMemberState(MemberState.Member))
er.use(requireMemberState(MemberState.Member))
courseRouter.get('/', async (req, res) => {
cr.get('/', async (req, res) => {
try {
const courses = await getAllCourses();
res.status(200).json(courses);
@@ -22,7 +22,7 @@ courseRouter.get('/', async (req, res) => {
}
})
courseRouter.get('/roles', async (req, res) => {
cr.get('/roles', async (req, res) => {
try {
const roles = await getCourseEventRoles();
res.status(200).json(roles);
@@ -32,7 +32,7 @@ courseRouter.get('/roles', async (req, res) => {
}
})
eventRouter.get('/', async (req: Request, res: Response) => {
er.get('/', async (req: Request, res: Response) => {
const allowedSorts = new Map([
["ascending", "ASC"],
["descending", "DESC"]
@@ -57,7 +57,7 @@ eventRouter.get('/', async (req: Request, res: Response) => {
}
});
eventRouter.get('/:id', async (req: Request, res: Response) => {
er.get('/:id', async (req: Request, res: Response) => {
try {
let out = await getCourseEventDetails(Number(req.params.id));
res.status(200).json(out);
@@ -67,7 +67,7 @@ eventRouter.get('/:id', async (req: Request, res: Response) => {
}
});
eventRouter.get('/attendees/:id', async (req: Request, res: Response) => {
er.get('/attendees/:id', async (req: Request, res: Response) => {
try {
const attendees: CourseAttendee[] = await getCourseEventAttendees(Number(req.params.id));
res.status(200).json(attendees);
@@ -77,7 +77,7 @@ eventRouter.get('/attendees/:id', async (req: Request, res: Response) => {
}
})
eventRouter.post('/', async (req: Request, res: Response) => {
er.post('/', async (req: Request, res: Response) => {
const posterID: number = req.user.id;
try {
console.log();
@@ -92,5 +92,5 @@ eventRouter.post('/', async (req: Request, res: Response) => {
}
})
module.exports.courseRouter = courseRouter;
module.exports.eventRouter = eventRouter;
export const courseRouter = cr;
export const eventRouter = er;

View File

@@ -148,4 +148,4 @@ router.get('/policy', async (req: Request, res: Response) => {
}
})
module.exports = router;
export const loaRouter = router;

View File

@@ -127,6 +127,4 @@ router.put('/:id/displayname', async (req, res) => {
});
module.exports = router;
export const memberRouter = router;

View File

@@ -35,5 +35,5 @@ r.get('/', async (req, res) => {
}
});
module.exports.ranks = r;
module.exports.memberRanks = ur;
export const ranks = r;
export const memberRanks = ur;

View File

@@ -117,5 +117,5 @@ r.delete('/:id', [requireMemberState(MemberState.Member), requireRole("17th Admi
}
})
module.exports.roles = r;
module.exports.memberRoles = ur;
export const roles = r;
export const memberRoles = ur;

View File

@@ -1,15 +1,15 @@
const express = require('express');
const status = express.Router();
const memberStatus = express.Router();
import express = require('express');
const statusR = express.Router();
const memberStatusR = express.Router();
import pool from '../db';
import { requireLogin } from '../middleware/auth';
status.use(requireLogin);
memberStatus.use(requireLogin);
statusR.use(requireLogin);
memberStatusR.use(requireLogin);
//insert a new latest rank for a user
memberStatus.post('/', async (req, res) => {
memberStatusR.post('/', async (req, res) => {
// try {
// const App = req.body?.App || {};
@@ -34,7 +34,7 @@ memberStatus.post('/', async (req, res) => {
});
//get all statuses
status.get('/', async (req, res) => {
statusR.get('/', async (req, res) => {
try {
const result = await pool.query('SELECT * FROM statuses;');
res.json(result);
@@ -44,7 +44,8 @@ status.get('/', async (req, res) => {
}
});
module.exports.status = status;
module.exports.memberStatus = memberStatus;
export const status = statusR;
export const memberStatus = memberStatusR;
// TODO, implement get all ranks route with SQL stirng SELECT id, name, short_name, category, sort_id FROM ranks;