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;