implemented new logging system in first iteration
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
const passport = require('passport');
|
||||
const OpenIDConnectStrategy = require('passport-openidconnect');
|
||||
const dotenv = require('dotenv');
|
||||
dotenv.config();
|
||||
|
||||
const express = require('express');
|
||||
const { param } = require('./applications');
|
||||
@@ -13,6 +11,7 @@ import { getUserRoles } from '../services/db/rolesService';
|
||||
import { getUserState, mapDiscordtoID } from '../services/db/memberService';
|
||||
import { MemberState } from '@app/shared/types/member';
|
||||
import { toDateTime } from '@app/shared/utils/time';
|
||||
import { logger } from '../services/logging/logger';
|
||||
const querystring = require('querystring');
|
||||
|
||||
function parseJwt(token) {
|
||||
@@ -37,10 +36,10 @@ passport.use(new OpenIDConnectStrategy({
|
||||
// console.log('profile:', profile);
|
||||
// console.log('jwt: ', parseJwt(jwtClaims));
|
||||
// console.log('params:', params);
|
||||
|
||||
let con;
|
||||
|
||||
try {
|
||||
var con = await pool.getConnection();
|
||||
con = await pool.getConnection();
|
||||
|
||||
await con.beginTransaction();
|
||||
|
||||
@@ -49,7 +48,13 @@ passport.use(new OpenIDConnectStrategy({
|
||||
let memberId: number | null = null;
|
||||
//if member exists
|
||||
if (existing.length > 0) {
|
||||
//login
|
||||
memberId = existing[0].id;
|
||||
logger.info('auth', `Existing member login`, {
|
||||
memberId,
|
||||
issuer,
|
||||
});
|
||||
|
||||
} else {
|
||||
//otherwise: create account mode
|
||||
const jwt = parseJwt(jwtClaims);
|
||||
@@ -61,11 +66,16 @@ passport.use(new OpenIDConnectStrategy({
|
||||
|
||||
if (discordID && memberId) {
|
||||
// claim account
|
||||
console.log("Claiming account");
|
||||
const result = await con.query(
|
||||
`UPDATE members SET authentik_sub = ?, authentik_issuer = ? WHERE id = ?;`,
|
||||
[sub, issuer, memberId]
|
||||
)
|
||||
logger.info('auth', `Existing member claimed via Discord`, {
|
||||
memberId,
|
||||
discordID,
|
||||
issuer,
|
||||
});
|
||||
|
||||
} else {
|
||||
console.log("New Account");
|
||||
// new account
|
||||
@@ -75,6 +85,13 @@ passport.use(new OpenIDConnectStrategy({
|
||||
[username, sub, issuer]
|
||||
)
|
||||
memberId = Number(result.insertId);
|
||||
|
||||
logger.info('auth', `New member account created`, {
|
||||
memberId,
|
||||
username,
|
||||
issuer,
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,10 +100,26 @@ passport.use(new OpenIDConnectStrategy({
|
||||
await con.commit();
|
||||
return cb(null, { memberId });
|
||||
} catch (error) {
|
||||
await con.rollback();
|
||||
logger.error('auth', `Authentication transaction failed`, {
|
||||
issuer,
|
||||
error: error instanceof Error ? error.message : String(error),
|
||||
stack: error instanceof Error ? error.stack : undefined,
|
||||
});
|
||||
|
||||
if (con) {
|
||||
try {
|
||||
await con.rollback();
|
||||
} catch (rollbackError) {
|
||||
logger.error('auth', `Rollback failed`, {
|
||||
error: rollbackError instanceof Error
|
||||
? rollbackError.message
|
||||
: String(rollbackError),
|
||||
});
|
||||
}
|
||||
}
|
||||
return cb(error);
|
||||
} finally {
|
||||
con.release();
|
||||
if (con) con.release();
|
||||
}
|
||||
}));
|
||||
|
||||
|
||||
@@ -30,7 +30,6 @@ ur.post('/', [requireRole(["17th Command", "17th Administrator", "17th HQ"]), re
|
||||
ur.get('/', async (req: express.Request, res: express.Response) => {
|
||||
try {
|
||||
const promos = await getPromotionHistorySummary();
|
||||
console.log(promos);
|
||||
res.status(200).json(promos);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
@@ -44,7 +43,6 @@ ur.get('/:day', async (req: express.Request, res: express.Response) => {
|
||||
|
||||
let day = new Date(req.params.day)
|
||||
const promos = await getPromotionsOnDay(day);
|
||||
console.log(promos);
|
||||
res.status(200).json(promos);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
|
||||
Reference in New Issue
Block a user