summary refs log tree commit diff
path: root/src/api/routes/auth
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/routes/auth')
-rw-r--r--src/api/routes/auth/accountRoutes.js78
-rw-r--r--src/api/routes/auth/adminAccountRoutes.js48
-rw-r--r--src/api/routes/auth/deviceRoutes.js45
3 files changed, 99 insertions, 72 deletions
diff --git a/src/api/routes/auth/accountRoutes.js b/src/api/routes/auth/accountRoutes.js

index 18c204d..76452e3 100644 --- a/src/api/routes/auth/accountRoutes.js +++ b/src/api/routes/auth/accountRoutes.js
@@ -1,44 +1,70 @@ import { deleteUser, loginUser, registerUser } from '#db/index.js'; import { AuthDto, RegisterDto } from '#dto/index.js'; +import { RouteDescription, RouteMethod } from '#api/RouteDescription.js'; +/** + * @type {RouteDescription} + */ export const registerRoute = { - route: '/auth/register', - async onPost(req, res) { - const data = await RegisterDto.create(req.body); - await registerUser(data); - res.status(204).send(); + path: '/auth/register', + methods: { + post: new RouteMethod({ + async method(req, res) { + const data = await RegisterDto.create(req.body); + await registerUser(data); + res.status(204).send(); + } + }) } }; +/** + * @type {RouteDescription} + */ export const loginRoute = { - route: '/auth/login', - async onPost(req, res) { - const data = await AuthDto.create(req.body); - const loginResult = await loginUser(data, req.headers['user-agent']); - res.send(loginResult); + path: '/auth/login', + methods: { + post: new RouteMethod({ + async method(req, res) { + const data = await AuthDto.create(req.body); + const loginResult = await loginUser( + data, + req.headers['user-agent'] + ); + res.send(loginResult); + } + }) } }; +/** + * @type {RouteDescription} + */ export const logoutRoute = { - route: '/auth/logout', - /** - * - * @param req {Request} - * @param res - * @returns {Promise<WhoAmIDto>} - */ - async onPost(req, res) { - const data = await AuthDto.create(req.body); - // const loginResult = await deleteDevice(data, ); - res.status(204).send(); + path: '/auth/logout', + methods: { + post: new RouteMethod({ + async method(req, res) { + const data = await AuthDto.create(req.body); + // const loginResult = await deleteDevice(data, ); + res.status(204).send(); + } + }) } }; +/** + * @type {RouteDescription} + */ export const deleteRoute = { - route: '/auth/delete', - async onDelete(req, res) { - const data = await AuthDto.create(req.body); - await deleteUser(data); - res.status(204).send(); + path: '/auth/delete', + methods: { + delete: new RouteMethod({ + async method(req, res) { + const data = await AuthDto.create(req.body); + await deleteUser(data); + res.status(204).send(); + } + }) } }; diff --git a/src/api/routes/auth/adminAccountRoutes.js b/src/api/routes/auth/adminAccountRoutes.js
index f85cc73..eb9b270 100644 --- a/src/api/routes/auth/adminAccountRoutes.js +++ b/src/api/routes/auth/adminAccountRoutes.js
@@ -1,24 +1,42 @@ import { deleteUser, loginUser, registerUser, UserType } from '#db/index.js'; import { AuthDto, RegisterDto } from '#dto/index.js'; -import { validateAuth } from '#api/middlewares/index.js'; +import { requireAdmin, validateAuth } from '#api/middlewares/index.js'; +import { RouteDescription, RouteMethod } from '#api/RouteDescription.js'; +/** + * @type {RouteDescription} + */ export const adminGetUsersRoute = { - route: '/admin/users', - onGetValidation: validateAuth({ roles: [UserType.ADMIN] }), - async onGet(req, res) { - res.send(DbUser.find({}).exec()); + path: '/admin/users', + methods: { + get: new RouteMethod({ + middlewares: [requireAdmin], + async method(req, res) { + res.send(DbUser.find({}).exec()); + } + }) } }; -export const adminUserRoute = { - route: '/admin/user/:id', - onGetValidation: validateAuth({ roles: [UserType.ADMIN] }), - async onGet(req, res) { - const user = await getUserById(req.params.id); - }, - onDeleteValidation: validateAuth({ roles: [UserType.ADMIN] }), - async onDelete(req, res) { - await deleteUser(data); - res.status(204).send(); +/** + * @type {RouteDescription} + */ +export const adminUserRoute = { + path: '/admin/user/:id', + methods: { + get: new RouteMethod({ + middlewares: [requireAdmin], + async method(req, res) { + const user = await getUserById(req.params.id); + res.send(user); + } + }), + delete: new RouteMethod({ + middlewares: [requireAdmin], + async method(req, res) { + await deleteUser(data); + res.status(204).send(); + } + }) } }; diff --git a/src/api/routes/auth/deviceRoutes.js b/src/api/routes/auth/deviceRoutes.js
index 11cae8f..ac4514f 100644 --- a/src/api/routes/auth/deviceRoutes.js +++ b/src/api/routes/auth/deviceRoutes.js
@@ -1,38 +1,21 @@ import { deleteUser, loginUser, registerUser } from '#db/index.js'; import { AuthDto, RegisterDto } from '#dto/index.js'; import { validateAuth } from '#api/middlewares/index.js'; +import { RouteDescription, RouteMethod } from '#api/RouteDescription.js'; +/** + * @type {RouteDescription} + */ export const getDevicesRoute = { - route: '/auth/devices', - onGetValidation: validateAuth({}), - async onGet(req, res) { - const data = await RegisterDto.create(req.body); - const registerResult = await registerUser(data); - res.send(registerResult); + path: '/auth/devices', + methods: { + get: new RouteMethod({ + middlewares: [validateAuth({})], + async method(req, res) { + const data = await RegisterDto.create(req.body); + const registerResult = await registerUser(data); + res.send(registerResult); + } + }) } }; - -// export const loginRoute = { -// route: '/auth/login', -// /** -// * -// * @param req {Request} -// * @param res -// * @returns {Promise<WhoAmIDto>} -// */ -// async onPost(req, res) { -// const data = await AuthDto.create(req.body); -// console.log(req.headers['user-agent']); -// const loginResult = await loginUser(data, req.headers['user-agent']); -// res.send(loginResult); -// } -// }; -// -// export const deleteRoute = { -// route: '/auth/delete', -// async onDelete(req, res) { -// const data = await AuthDto.create(req.body); -// await deleteUser(data); -// res.status(204).send(); -// } -// };