diff --git a/api/index.js b/api/index.js index 9363abe..3c23124 100644 --- a/api/index.js +++ b/api/index.js @@ -13,10 +13,13 @@ const port = 3000; // Mount route modules const applicationsRouter = require('./routes/applications'); -const ranksRouter = require('./routes/ranks'); +const { userRanks, ranks} = require('./routes/ranks'); +const users = require('./routes/users'); app.use('/application', applicationsRouter); -app.use('/ranks', ranksRouter); +app.use('/ranks', ranks); +app.use('/userRoles', userRanks); +app.use('/users', users); app.listen(port, () => { console.log(`Example app listening on port ${port} `) diff --git a/api/routes/ranks.js b/api/routes/ranks.js index db30c5d..1b54896 100644 --- a/api/routes/ranks.js +++ b/api/routes/ranks.js @@ -1,10 +1,30 @@ const express = require('express'); -const router = express.Router(); +const r = express.Router(); +const ur = express.Router(); + +const pool = require('../db'); // Placeholder router for rank-related routes. // Implement rank endpoints here, for example: // router.get('/', async (req, res) => { /* ... */ }); // router.post('/change', async (req, res) => { /* ... */ }); -module.exports = router; +//insert a new latest role for a user +ur.post('/', async (req, res) => { +}); + +r.get('/', async (req, res) => { + try { + const result = await pool.query('SELECT id, name, short_name, sort_id FROM ranks;'); + res.json(result); + } catch (err) { + console.error(err); + res.status(500).json({ error: 'Internal server error' }); + } +}); + +module.exports.ranks = r; +module.exports.userRanks = ur; + +// TODO, implement get all ranks route with SQL stirng SELECT id, name, short_name, category, sort_id FROM ranks; \ No newline at end of file diff --git a/api/routes/users.js b/api/routes/users.js new file mode 100644 index 0000000..27fb8f9 --- /dev/null +++ b/api/routes/users.js @@ -0,0 +1,24 @@ +const express = require('express'); +const router = express.Router(); + +// DB pool (same as used in api/index.js) +const pool = require('../db'); + +//create a new user? +router.post('/', async (req, res) => { + +}); + +//get all users +router.get('/', async (req, res) => { + try { + const result = await pool.query('SELECT * FROM view_member_rank_status_all;'); + return res.status(200).json(result); + } catch (err) { + console.error('Error fetching users:', err); + return res.status(500).json({ error: 'Failed to fetch users' }); + } +}); + + +module.exports = router;