From 659ce6eed774071e83a1216ddd43adc1b891600c Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Sat, 20 Sep 2025 10:09:14 -0400 Subject: [PATCH] finished(?) hooking up rank system --- api/index.js | 2 +- api/routes/ranks.js | 15 ++++------ ui/src/api/rank.ts | 4 +-- ui/src/pages/RankChange.vue | 55 ++++++++++++++++++++++++++++++++++--- 4 files changed, 59 insertions(+), 17 deletions(-) diff --git a/api/index.js b/api/index.js index e7a4c14..73de1b3 100644 --- a/api/index.js +++ b/api/index.js @@ -46,7 +46,7 @@ const authRouter = require('./routes/auth') app.use('/application', applicationsRouter); app.use('/ranks', ranks); -app.use('/userRoles', memberRanks); +app.use('/memberRanks', memberRanks); app.use('/members', members); app.use('/loa', loaHandler); app.use('/status', status) diff --git a/api/routes/ranks.js b/api/routes/ranks.js index b26a859..b650aac 100644 --- a/api/routes/ranks.js +++ b/api/routes/ranks.js @@ -7,24 +7,19 @@ const pool = require('../db'); //insert a new latest rank for a user ur.post('/', async (req, res) => { try { - const App = req.body?.App || {}; + const change = req.body?.change; + console.log(change); - // TODO: replace with current user ID - const memberId = 1; + const sql = `INSERT INTO members_ranks (member_id, rank_id, event_date) VALUES (?, ?, ?);`; - const sql = `INSERT INTO applications (member_id, app_version, app_data) VALUES (?, ?, ?);`; - const appVersion = 1; - - const params = [memberId, appVersion, JSON.stringify(App)] - - console.log(params) + const params = [change.member_id, change.rank_id, change.event_date] await pool.query(sql, params); res.sendStatus(201); } catch (err) { console.error('Insert failed:', err); - res.status(500).json({ error: 'Failed to save application' }); + res.status(500).json({ error: 'Failed to update ranks' }); } }); diff --git a/ui/src/api/rank.ts b/ui/src/api/rank.ts index eaf3e93..80a8abf 100644 --- a/ui/src/api/rank.ts +++ b/ui/src/api/rank.ts @@ -20,13 +20,13 @@ export async function getRanks(): Promise { } // Placeholder: submit a rank change -export async function submitRankChange(memberId: number, rankId: number): Promise<{ ok: boolean }> { +export async function submitRankChange(memberId: number, rankId: number, date: string): Promise<{ ok: boolean }> { const res = await fetch(`${addr}/rank`, { method: "POST", headers: { "Content-Type": "application/json", }, - body: JSON.stringify({ memberId, rankId }), + body: JSON.stringify({ memberId, rankId, date }), }) if (res.ok) { diff --git a/ui/src/pages/RankChange.vue b/ui/src/pages/RankChange.vue index af499ee..565d579 100644 --- a/ui/src/pages/RankChange.vue +++ b/ui/src/pages/RankChange.vue @@ -1,14 +1,29 @@ \ No newline at end of file