Files
milsim-site-v4/api/src/routes/ranks.ts

39 lines
1.1 KiB
TypeScript

import { MemberState } from "@app/shared/types/member";
import { requireLogin, requireMemberState, requireRole } from "../middleware/auth";
import { getAllRanks, insertMemberRank } from "../services/rankService";
import express = require('express');
const r = express.Router();
const ur = express.Router();
r.use(requireLogin)
ur.use(requireLogin)
//insert a new latest rank for a user
ur.post('/', [requireRole(["17th Command", "17th Administrator", "17th HQ"]), requireMemberState(MemberState.Member)], async (req, res) => {
3
try {
const change = req.body?.change;
await insertMemberRank(change.member_id, change.rank_id, change.date);
res.sendStatus(201);
} catch (err) {
console.error('Insert failed:', err);
res.status(500).json({ error: 'Failed to update ranks' });
}
});
//get all ranks
r.get('/', async (req, res) => {
try {
const ranks = await getAllRanks();
res.json(ranks);
} catch (err) {
console.error(err);
res.status(500).json({ error: 'Internal server error' });
}
});
export const ranks = r;
export const memberRanks = ur;