All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m46s
54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
const express = require('express');
|
|
const { verifySuperAdmin } = require('../auth');
|
|
const { createUser, deleteUser, listUsers, updateUser } = require('../services/userService');
|
|
|
|
const router = express.Router();
|
|
|
|
router.get('/users', verifySuperAdmin, async (req, res, next) => {
|
|
try {
|
|
const users = await listUsers();
|
|
res.json({ users });
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
});
|
|
|
|
router.post('/users', verifySuperAdmin, async (req, res, next) => {
|
|
try {
|
|
const { name, email, password } = req.body || {};
|
|
const { user, password: userPassword, generatedPassword } = await createUser({ name, email, password });
|
|
|
|
const responsePayload = {
|
|
user
|
|
};
|
|
|
|
if (generatedPassword) {
|
|
responsePayload.temporaryPassword = userPassword;
|
|
}
|
|
|
|
res.status(201).json(responsePayload);
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
});
|
|
|
|
router.patch('/users/:id', verifySuperAdmin, async (req, res, next) => {
|
|
try {
|
|
const user = await updateUser(req.params.id, req.body || {});
|
|
res.json({ user });
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
});
|
|
|
|
router.delete('/users/:id', verifySuperAdmin, async (req, res, next) => {
|
|
try {
|
|
await deleteUser(req.params.id);
|
|
res.status(204).send();
|
|
} catch (error) {
|
|
next(error);
|
|
}
|
|
});
|
|
|
|
module.exports = router;
|