import { DbUser, deleteUser, getUserById, loginUser, registerUser, UserType } from '#db/index.js'; import { AuthDto, RegisterDto } from '#dto/index.js'; import { requireAdmin, requireRole } from '#api/middlewares/index.js'; import { RouteDescription, RouteMethod } from '#api/RouteDescription.js'; /** * @type {RouteDescription} */ export const adminGetUsersRoute = { path: '/admin/users', methods: { get: new RouteMethod({ description: 'Get all users (raw)', exampleHeaders: { Authorization: 'Bearer {{accessToken}}' }, middlewares: [requireAdmin], async method(req, res) { res.send(DbUser.find({}).exec()); } }) } }; /** * @type {RouteDescription} */ export const adminUserRoute = { path: '/admin/user/:id', methods: { get: new RouteMethod({ description: 'Get a user (raw)', exampleHeaders: { Authorization: 'Bearer {{accessToken}}' }, middlewares: [requireAdmin], async method(req, res) { const user = await getUserById(req.params.id); res.send(user); } }), delete: new RouteMethod({ middlewares: [requireAdmin], description: 'Delete a user', async method(req, res) { await deleteUser(data); res.status(204).send(); } }) } };