fixed pagination and small syntax issues

This commit is contained in:
Pau 2025-04-07 23:22:52 +02:00
parent 027d8c7dee
commit 1e59a5a33a
6 changed files with 81 additions and 133 deletions

View File

@ -9,6 +9,7 @@ import {
import { error404, errorHandler } from "../../utils/errors.js"; import { error404, errorHandler } from "../../utils/errors.js";
import { sendResponseNotFound } from "../../utils/responses.js"; import { sendResponseNotFound } from "../../utils/responses.js";
import { noResults } from "../../validators/result-validators.js"; import { noResults } from "../../validators/result-validators.js";
import mysql from "../../adapters/mysql.js";
const getEndpointsController = (req, res, next, config) => { const getEndpointsController = (req, res, next, config) => {
const conn = mysql.start(config) const conn = mysql.start(config)
@ -64,34 +65,6 @@ const getEndpointsByUuidController = (req, res, next, config) => {
}) })
} }
const getEndpointsByRouteController = (req, res, next, config) => {
const conn = mysql.start(config)
const route = req.params.route
getEndpointsModel({ route, conn })
.then((response) => {
if (noResults(response)) {
const err = error404()
const error = errorHandler(err, config.environment)
return sendResponseNotFound(res, error)
}
const result = {
_data: {
endpoints: response
}
}
next(result)
})
.catch((err) => {
const error = errorHandler(err, config.environment)
return res.status(error.code).json(error)
})
.finally(() => {
mysql.end(conn)
})
}
const postEndpointsController = (req, res, next, config) => { const postEndpointsController = (req, res, next, config) => {
const conn = mysql.start(config) const conn = mysql.start(config)
const created_by = req.auth.user || null const created_by = req.auth.user || null
@ -172,7 +145,6 @@ const deleteEndpointsController = (req, res, next, config) => {
export { export {
getEndpointsController, getEndpointsController,
getEndpointsByUuidController, getEndpointsByUuidController,
getEndpointsByRouteController,
postEndpointsController, postEndpointsController,
putEndpointsController, putEndpointsController,
softDeleteEndpointsController, softDeleteEndpointsController,

View File

@ -57,7 +57,7 @@ const getPermissionByUuidController = (req, res, next, config) => {
}) })
.catch((err) => { .catch((err) => {
const error = errorHandler(err, config.environment) const error = errorHandler(err, config.environment)
res.status(error.code).json(error) return res.status(error.code).json(error)
}) })
.finally(() => { .finally(() => {
mysql.end(conn) mysql.end(conn)

View File

@ -11,7 +11,7 @@ const postRefreshTokenController = (req, res, next, config) => {
const conn = mysql.start(config) const conn = mysql.start(config)
const { user } = req.auth const { user } = req.auth
getUserListModel({ uuid: user }) getUserListModel({conn, uuid: user})
.then((response) => { .then((response) => {
if (noResults(response)) { if (noResults(response)) {
const err = error401() const err = error401()
@ -35,9 +35,9 @@ const postRefreshTokenController = (req, res, next, config) => {
role: response[0].role role: response[0].role
} }
const {token, refreshToken} = generateTokens(tokenPayload) const {accessToken, refreshToken} = generateTokens(tokenPayload)
//token application in frontend //token application in frontend
next({token, refreshToken}) next({accessToken, refreshToken})
}) })
}) })
.catch((err) => { .catch((err) => {

View File

@ -11,29 +11,40 @@ import { sendResponseNotFound } from '../../utils/responses.js'
import { noResults } from '../../validators/result-validators.js' import { noResults } from '../../validators/result-validators.js'
const getRoleController = (req, res, next, config) => { const getRoleController = (req, res, next, config) => {
const conn = mysql.start(config) // Parse and validate pagination parameters with defaults
const limit = parseInt(req.query.limit, 10) || 100;
const page = parseInt(req.query.page, 10) || 1;
// Create sanitized query object
const queryParams = {
...req.query,
limit,
page
};
const conn = mysql.start(config)
Promise.all([ Promise.all([
getRoleModel({ ...req.query, conn }), getRoleModel({ ...queryParams, conn }),
countRoleModel({ ...req.query, conn }) countRoleModel({ ...queryParams, conn })
]) ])
.then(([getResults, countResults]) => .then(([getResults, countResults]) => {
next({ next({
_data: { Role: getResults }, _data: {roles: getResults},
_page: { _page: {
totalElements: countResults, totalElements: countResults,
limit: req.query.limit || 100, limit: req.query.limit || 100,
page: req.query.page || (countResults && 1) || 0 page: req.query.page || (countResults && 1) || 0
} }
}) })
) })
.catch((err) => { .catch((err) => {
const error = errorHandler(err, config.environment) const error = errorHandler(err, config.environment)
return res.status(error.code).json(error) return res.status(error.code).json(error)
}) })
.finally(() => { .finally(() => {
mysql.end(conn) mysql.end(conn)
}) })
} }
const getRoleInfoController = (req, res, next, config) => { const getRoleInfoController = (req, res, next, config) => {
@ -50,35 +61,7 @@ const getRoleInfoController = (req, res, next, config) => {
const result = { const result = {
_data: { _data: {
Role: RoleInformation roles: RoleInformation
}
}
next(result)
})
.catch((err) => {
const error = errorHandler(err, config.environment)
return res.status(error.code).json(error)
})
.finally(() => {
mysql.end(conn)
})
}
const getRoleByNameController = (req, res, next, config) => {
const conn = mysql.start(config)
const name = req.params.name
getRoleModel({ name, conn })
.then((RoleInformation) => {
if (noResults(RoleInformation)) {
const err = error404()
const error = errorHandler(err, config.environment)
return sendResponseNotFound(res, error)
}
const result = {
_data: {
Role: RoleInformation
} }
} }
next(result) next(result)
@ -99,7 +82,7 @@ const postRoleController = (req, res, next, config) => {
insertRoleModel({ ...req.body, createdBy, conn }) insertRoleModel({ ...req.body, createdBy, conn })
.then((RoleInformation) => { .then((RoleInformation) => {
const result = { const result = {
_data: { role: RoleInformation } _data: { roles: RoleInformation }
} }
next(result) next(result)
@ -122,7 +105,7 @@ const putRoleController = (req, res, next, config) => {
const result = { const result = {
_data: { _data: {
message: 'Role modified', message: 'Role modified',
Role: RoleInformation roles: RoleInformation
} }
} }
next(result) next(result)
@ -160,6 +143,5 @@ export {
getRoleController, getRoleController,
getRoleInfoController, getRoleInfoController,
postRoleController, postRoleController,
putRoleController, putRoleController
getRoleByNameController
} }

View File

@ -1,25 +1,24 @@
import { error404, errorHandler } from '../../utils/errors.js'
import { sendResponseNotFound } from '../../utils/responses.js'
import { noResults } from '../../validators/result-validators.js'
import mysql from '../../adapters/mysql.js' import mysql from '../../adapters/mysql.js'
import { import {
getPermissionModel, getRolesHasPermissionsModel,
countPermissionModel, countRolesHasPermissionsModel,
insertPermissionModel, insertRolesHasPermissionsModel,
modifyPermissionModel, modifyRolesHasPermissionsModel,
softDeletePermissionModel softDeleteRolesHasPermissionsModel
} from '../../models/authorization/permissionsModel.js' } from '../../models/authorization/roles_has_permissionsModel.js'
import { errorHandler } from '../../utils/errors.js'
import { noResults } from '../../validators/result-validators.js'
const getPermissionController = (req, res, next, config) => { const getRolesHasPermissionsController = (req, res, next, config) => {
const conn = mysql.start(config) const conn = mysql.start(config)
const uuidList = req.query.uuidList && req.query.uuidList.split(',')
Promise.all([ Promise.all([
getPermissionModel({...req.query, conn}), getRolesHasPermissionsModel({...req.query, uuidList, conn}),
countPermissionModel({...req.query, conn}) countRolesHasPermissionsModel({...req.query, uuidList, conn})
]) ])
.then(([getResults, countResults]) => { .then(([getResults, countResults]) => {
next({ next({
_data: {permissions: getResults}, _data: {roles_has_permissions: getResults},
_page: { _page: {
totalElements: countResults, totalElements: countResults,
limit: req.query.limit || 100, limit: req.query.limit || 100,
@ -36,11 +35,10 @@ const getPermissionController = (req, res, next, config) => {
}) })
} }
const getPermissionByUuidController = (req, res, next, config) => { const getRolesHasPermissionsByUuidController = (req, res, next, config) => {
const uuid_permission = req.params.uuid const uuid = req.params.uuid
const conn = mysql.start(config) const conn = mysql.start(config)
getRolesHasPermissionsModel({ uuid, conn })
getPermissionModel({ uuid_permission, conn })
.then((response) => { .then((response) => {
if (noResults(response)) { if (noResults(response)) {
const err = error404() const err = error404()
@ -50,7 +48,7 @@ const getPermissionByUuidController = (req, res, next, config) => {
const result = { const result = {
_data: { _data: {
permissions: response roles_has_permissions: response
} }
} }
next(result) next(result)
@ -64,16 +62,14 @@ const getPermissionByUuidController = (req, res, next, config) => {
}) })
} }
const postPermissionController = (req, res, next, config) => { const postRolesHasPermissionsController = (req, res, next, config) => {
const conn = mysql.start(config) const conn = mysql.start(config)
const created_by = req.auth.user || null const createdBy = req.auth.user || null
insertPermissionModel({...req.body, created_by, conn}) insertRolesHasPermissionsModel({...req.body, createdBy, conn})
.then((response) => { .then((roles_has_permissions) => {
const result = { const result = {
_data: { _data: roles_has_permissions
permissions: response
}
} }
next(result) next(result)
}) })
@ -86,16 +82,14 @@ const postPermissionController = (req, res, next, config) => {
}) })
} }
const putPermissionController = (req, res, next, config) => { const putRolesHasPermissionsController = (req, res, next, config) => {
const conn = mysql.start(config) const conn = mysql.start(config)
const uuid_permission = req.params.uuid const uuid = req.params.uuid
modifyPermissionModel({...req.body, uuid_permission, conn}) modifyRolesHasPermissionsModel({ ...req.body, uuid, modifiedBy, conn })
.then((response) => { .then((roles_has_permissions) => {
const result = { const result = {
_data: { _data: roles_has_permissions
permissions: response
}
} }
next(result) next(result)
}) })
@ -108,12 +102,13 @@ const putPermissionController = (req, res, next, config) => {
}) })
} }
const softDeletePermissionController = (req, res, next, config) => { const softDeleteRolesHasPermissionsController = (req, res, next, config) => {
const conn = mysql.start(config) const conn = mysql.start(config)
const uuid_permission = req.params.uuid const uuid = req.params.uuid
const deletedBy = req.auth.user || null const { deleted } = req.body
const deletedby = req.auth.user || null
softDeletePermissionModel({uuid_permission, deletedBy, conn}) softDeleteRolesHasPermissionsModel({ uuid, deleted, deletedby, conn })
.then(() => { .then(() => {
const result = {} const result = {}
next(result) next(result)
@ -128,9 +123,9 @@ const softDeletePermissionController = (req, res, next, config) => {
} }
export { export {
getPermissionController, getRolesHasPermissionsController,
getPermissionByUuidController, getRolesHasPermissionsByUuidController,
postPermissionController, postRolesHasPermissionsController,
putPermissionController, softDeleteRolesHasPermissionsController,
softDeletePermissionController putRolesHasPermissionsController,
} }

View File

@ -1,4 +1,3 @@
import bcrypt from 'bcrypt' import bcrypt from 'bcrypt'
import mysql from '../../adapters/mysql.js' import mysql from '../../adapters/mysql.js'
import { import {
@ -35,7 +34,7 @@ const getUserListController = (req, res, next, config) => {
}) })
.catch((err) => { .catch((err) => {
const error = errorHandler(err, config.environment) const error = errorHandler(err, config.environment)
res.status(error.code).json(error) return res.status(error.code).json(error)
}) })
.finally(() => { .finally(() => {
mysql.end(conn) mysql.end(conn)
@ -147,4 +146,4 @@ const softDeleteUserController = (req, res, next, config) => {
}) })
} }
export { softDeleteUserController, getUserInfoController, getUserListController, postUserController, putUserController } export { softDeleteUserController, getUserInfoController, getUserListController, postUserController, putUserController }