added detailed reason to member discharge

This commit is contained in:
2026-02-12 00:53:15 -05:00
parent 1372d4d285
commit 0f29dabeee
5 changed files with 62 additions and 5 deletions

View File

@@ -0,0 +1,53 @@
'use strict';
var dbm;
var type;
var seed;
var fs = require('fs');
var path = require('path');
var Promise;
/**
* We receive the dbmigrate dependency from dbmigrate initially.
* This enables us to not have to rely on NODE_PATH.
*/
exports.setup = function(options, seedLink) {
dbm = options.dbmigrate;
type = dbm.dataType;
seed = seedLink;
Promise = options.Promise;
};
exports.up = function(db) {
var filePath = path.join(__dirname, 'sqls', '20260212052346-state-reason-detailed-up.sql');
return new Promise( function( resolve, reject ) {
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
if (err) return reject(err);
console.log('received data: ' + data);
resolve(data);
});
})
.then(function(data) {
return db.runSql(data);
});
};
exports.down = function(db) {
var filePath = path.join(__dirname, 'sqls', '20260212052346-state-reason-detailed-down.sql');
return new Promise( function( resolve, reject ) {
fs.readFile(filePath, {encoding: 'utf-8'}, function(err,data){
if (err) return reject(err);
console.log('received data: ' + data);
resolve(data);
});
})
.then(function(data) {
return db.runSql(data);
});
};
exports._meta = {
"version": 1
};

View File

@@ -0,0 +1 @@
/* Replace with your SQL commands */

View File

@@ -0,0 +1,3 @@
/* Replace with your SQL commands */
ALTER TABLE member_state_history ADD reason_detailed TEXT;

View File

@@ -245,7 +245,7 @@ router.post('/discharge', [requireLogin, requireMemberState(MemberState.Member),
con.beginTransaction(); con.beginTransaction();
var data: Discharge = req.body; var data: Discharge = req.body;
setUserState(data.userID, MemberState.Discharged, "Member Discharged", author, con); setUserState(data.userID, MemberState.Discharged, "Member Discharged", author, con, data.reason);
cancelLatestRank(data.userID, con); cancelLatestRank(data.userID, con);
cancelLatestUnit(data.userID, con); cancelLatestUnit(data.userID, con);
con.commit(); con.commit();

View File

@@ -100,7 +100,7 @@ export async function getUserData(userID: number): Promise<Member> {
return res[0] ?? null; return res[0] ?? null;
} }
export async function setUserState(userID: number, state: MemberState, reason: string, creatorID: number, externalCon?: mariadb.PoolConnection, endPrevious: boolean = true, createHistory: boolean = true) { export async function setUserState(userID: number, state: MemberState, reason: string, creatorID: number, externalCon?: mariadb.PoolConnection, details: string = "", endPrevious: boolean = true, createHistory: boolean = true) {
const isInternalConn = !externalCon; const isInternalConn = !externalCon;
if (isInternalConn) if (isInternalConn)
var con = await pool.getConnection(); var con = await pool.getConnection();
@@ -118,9 +118,9 @@ export async function setUserState(userID: number, state: MemberState, reason: s
if (createHistory) { if (createHistory) {
const insertHistorySql = `INSERT INTO member_state_history const insertHistorySql = `INSERT INTO member_state_history
(member_id, state_id, reason, created_by_id, start_date, end_date) (member_id, state_id, reason, created_by_id, start_date, end_date, reason_detailed)
VALUES (?, ?, ?, ?, NOW(), NULL);`; VALUES (?, ?, ?, ?, NOW(), NULL, ?);`;
await con.query(insertHistorySql, [userID, state, reason, creatorID]); await con.query(insertHistorySql, [userID, state, reason, creatorID, details]);
} }
if (isInternalConn) await con.commit(); if (isInternalConn) await con.commit();