From 162f97975a6a784cbf4c9b7d5d2b1ea6799351e9 Mon Sep 17 00:00:00 2001 From: Rory& Date: Tue, 3 Jun 2025 21:28:47 +0200 Subject: Remove admin account routes, fix multiple routes --- src/api/routes/auth/accountRoutes.js | 11 ++++-- src/api/routes/auth/adminAccountRoutes.js | 58 ------------------------------- src/api/routes/auth/index.js | 1 - 3 files changed, 8 insertions(+), 62 deletions(-) delete mode 100644 src/api/routes/auth/adminAccountRoutes.js (limited to 'src/api/routes/auth') diff --git a/src/api/routes/auth/accountRoutes.js b/src/api/routes/auth/accountRoutes.js index 34592ed..fb6dcfa 100644 --- a/src/api/routes/auth/accountRoutes.js +++ b/src/api/routes/auth/accountRoutes.js @@ -3,6 +3,7 @@ import { AuthDto, RegisterDto } from '#dto/index.js'; import { RouteDescription, RouteMethod } from '#api/RouteDescription.js'; import { WhoAmIDto } from '#dto/auth/WhoAmIDto.js'; import { requireAuth } from '#api/middlewares/index.js'; +import { SafeNSoundError } from '#util/error.js'; /** * @type {RouteDescription} @@ -59,13 +60,17 @@ export const logoutRoute = { path: '/auth/logout', methods: { post: new RouteMethod({ - description: 'Log out from a device (TODO)', + description: 'Log out from a device', exampleHeaders: { Authorization: 'Bearer {{accessToken}}' }, + middlewares: [requireAuth], async method(req, res) { - const data = await AuthDto.create(req.body); - // const loginResult = await deleteDevice(data, ); + const deviceIndex = req.user.devices.findIndex( + device => device.id === req.device._id + ); + req.user.devices.splice(deviceIndex, 1); + await req.user.save(); res.status(204).send(); } }) diff --git a/src/api/routes/auth/adminAccountRoutes.js b/src/api/routes/auth/adminAccountRoutes.js deleted file mode 100644 index b485002..0000000 --- a/src/api/routes/auth/adminAccountRoutes.js +++ /dev/null @@ -1,58 +0,0 @@ -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(); - } - }) - } -}; diff --git a/src/api/routes/auth/index.js b/src/api/routes/auth/index.js index 2d2cc86..e687911 100644 --- a/src/api/routes/auth/index.js +++ b/src/api/routes/auth/index.js @@ -1,3 +1,2 @@ export * from './accountRoutes.js'; export * from './deviceRoutes.js'; -export * from './adminAccountRoutes.js'; -- cgit 1.5.1