-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapiRoutes.js
More file actions
64 lines (50 loc) · 1.63 KB
/
apiRoutes.js
File metadata and controls
64 lines (50 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
const express = require('express');
const router = express.Router();
// const path = require('path');
const queryAsync = require('./queryAsync');
// Get all users
router.get('/api/users', async (req, res) => {
const sql = 'SELECT * FROM users';
const result = await queryAsync(sql);
res.json(result);
});
// Get a specific user
router.get('/api/users/:userId', async (req, res) => {
const userId = req.params.userId;
const sql = 'SELECT * FROM users WHERE user_id = ?';
const result = await queryAsync(sql, [userId]);
if (result.length === 0) {
res.status(404).send('User not found');
return;
}
res.json(result[0]);
});
// Update a user
router.put('/api/users/:userId', express.json(), async (req, res) => {
const userId = req.params.userId;
const {
role_id
} = req.body;
// Check if the role_id is valid (either 1 or 2)
if (role_id !== '1' && role_id !== '2') {
res.status(400).send('Invalid role_id. It must be either 1 or 2.');
return;
}
const sql = 'UPDATE users SET role_id = ? WHERE user_id = ?';
await queryAsync(sql, [role_id, userId]);
res.status(200).send('User role updated');
});
// Delete a user
router.delete('/api/users/:userId', async (req, res) => {
const userId = req.params.userId;
const sql = 'DELETE FROM users WHERE user_id = ?';
await queryAsync(sql, [userId]);
res.status(200).send('User deleted');
});
// Get all scores
router.get('/api/scores', async (req, res) => {
const sql = 'SELECT * FROM scores';
const result = await queryAsync(sql);
res.json(result);
});
module.exports = router;