created all controllers for layering
This commit is contained in:
parent
fa7971bb2b
commit
05f580512b
|
|
@ -0,0 +1,181 @@
|
|||
import {
|
||||
getEndpointsModel,
|
||||
countEndpointsModel,
|
||||
insertEndpointsModel,
|
||||
modifyEndpointsModel,
|
||||
softDeleteEndpointsModel,
|
||||
deleteEndpointsModel
|
||||
} from "../../models/authorization/endpointsModel.js";
|
||||
import { error404, errorHandler } from "../../utils/errors.js";
|
||||
import { sendResponseNotFound } from "../../utils/responses.js";
|
||||
import { noResults } from "../../validators/result-validators.js";
|
||||
|
||||
const getEndpointsController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
|
||||
Promise.all([
|
||||
getEndpointsModel({ ...req.query, conn }),
|
||||
countEndpointsModel({ ...req.query, conn })
|
||||
])
|
||||
.then(([getResults, countResults]) =>
|
||||
next({
|
||||
_data: { endpoints: getResults },
|
||||
_page: {
|
||||
totalElements: countResults,
|
||||
limit: req.query.limit || 100,
|
||||
page: req.query.page || (countResults && 1) || 0
|
||||
}
|
||||
})
|
||||
)
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const getEndpointsByUuidController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid = req.params.uuid
|
||||
|
||||
getEndpointsModel({ uuid, conn })
|
||||
.then((endpointsInformation) => {
|
||||
if (noResults(endpointsInformation)) {
|
||||
const err = error404()
|
||||
const error = errorHandler(err, config.environment)
|
||||
return sendResponseNotFound(res, error)
|
||||
}
|
||||
|
||||
const result = {
|
||||
_data: {
|
||||
endpoints: endpointsInformation
|
||||
}
|
||||
}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
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)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const postEndpointsController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const created_by = req.headers['uuid_requester'] || null
|
||||
|
||||
insertEndpointsModel({ ...req.body, created_by, conn })
|
||||
.then((endpoints) => {
|
||||
const result = {
|
||||
_data: { endpoints }
|
||||
}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const putEndpointsController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid = req.params.uuid
|
||||
|
||||
modifyEndpointsModel({ ...req.body, uuid, conn })
|
||||
.then((endpoints) => {
|
||||
const result = {
|
||||
_data: { endpoints }
|
||||
}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const softDeleteEndpointsController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid = req.params.uuid
|
||||
const { deleted } = req.body
|
||||
const deletedby = req.headers['uuid_requester'] || null
|
||||
|
||||
softDeleteEndpointsModel({ uuid, deleted, deletedby, conn })
|
||||
.then(() => {
|
||||
const result = {}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const deleteEndpointsController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid = req.params.uuid
|
||||
|
||||
deleteEndpointsModel({ uuid, conn })
|
||||
.then(() => {
|
||||
const result = {}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
getEndpointsController,
|
||||
getEndpointsByUuidController,
|
||||
getEndpointsByRouteController,
|
||||
postEndpointsController,
|
||||
putEndpointsController,
|
||||
softDeleteEndpointsController,
|
||||
deleteEndpointsController
|
||||
}
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
import { getUserListModel } from "../../models/authorization/userModel.js";
|
||||
import { noResults } from "../../validators/result-validators.js";
|
||||
import mysql from "../../adapters/mysql.js";
|
||||
import bcrypt from "bcrypt";
|
||||
import { error404, errorHandler } from "../../utils/errors.js";
|
||||
import { sendResponseNotFound, sendResponseUnauthorized } from "../../utils/responses.js";
|
||||
import { getRolesHasPermissionsModel } from "../../models/authorization/roles_has_permissionsModel.js";
|
||||
|
||||
const postLoginController = (req, res, next, config) => {
|
||||
const { username, password } = req.body;
|
||||
const conn = mysql.start(config);
|
||||
|
||||
getUserListModel({ conn, loginUsername: username})
|
||||
.then((response) => {
|
||||
if (noResults(response)) {
|
||||
const error = errorHandler({code: 'UNAUTHORIZED'}, config.environment);
|
||||
return sendResponseUnauthorized(res, error);
|
||||
}
|
||||
|
||||
return bcrypt
|
||||
.compare(password, response[0].password)
|
||||
.then((isMatch) => {
|
||||
if (!isMatch) {
|
||||
const error = errorHandler({code: 'UNAUTHORIZED'}, config.environment);
|
||||
return sendResponseUnauthorized(res, error);
|
||||
}
|
||||
|
||||
const {uuid, username, email, role} = response[0];
|
||||
const roleUuid = role
|
||||
|
||||
//obtain role permissions
|
||||
return _getRolePermissions(config, roleUuid, conn)
|
||||
.then(rolePermissions => {
|
||||
const roleData = {
|
||||
name: response[0].role_name || 'viewer',
|
||||
roles_uuid: roleUuid
|
||||
};
|
||||
|
||||
const result = {
|
||||
_data: {
|
||||
uuid,
|
||||
username,
|
||||
email,
|
||||
role,
|
||||
roleData: roleData,
|
||||
role_permissions: rolePermissions
|
||||
},
|
||||
};
|
||||
|
||||
next(result);
|
||||
});
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment);
|
||||
res.status(error.code).json(error);
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn);
|
||||
});
|
||||
}
|
||||
|
||||
const _getRolePermissions = (config, roleUuid, conn) => {
|
||||
|
||||
return getRolesHasPermissionsModel({ uuid_role: roleUuid, conn })
|
||||
.then((response) => {
|
||||
if (noResults(response)) {
|
||||
const err = error404();
|
||||
const error = errorHandler(err, config.environment);
|
||||
return sendResponseNotFound(res, error);
|
||||
}
|
||||
|
||||
return response.map(({ permission }) => permission);
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment);
|
||||
res.status(error.code).json(error);
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn);
|
||||
});
|
||||
}
|
||||
|
||||
export {
|
||||
postLoginController
|
||||
}
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
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 {
|
||||
getPermissionModel,
|
||||
countPermissionModel,
|
||||
insertPermissionModel,
|
||||
modifyPermissionModel,
|
||||
softDeletePermissionModel
|
||||
} from '../../models/authorization/permissionsModel.js'
|
||||
|
||||
const getPermissionController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
|
||||
Promise.all([
|
||||
getPermissionModel({...req.query, conn}),
|
||||
countPermissionModel({...req.query, conn})
|
||||
])
|
||||
.then(([getResults, countResults]) => {
|
||||
next({
|
||||
_data: {permissions: getResults},
|
||||
_page: {
|
||||
totalElements: countResults,
|
||||
limit: req.query.limit || 100,
|
||||
page: req.query.page || (countResults && 1) || 0
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const getPermissionByUuidController = (req, res, next, config) => {
|
||||
const uuid_permission = req.params.uuid
|
||||
const conn = mysql.start(config)
|
||||
|
||||
getPermissionModel({ uuid_permission, conn })
|
||||
.then((response) => {
|
||||
if (noResults(response)) {
|
||||
const err = error404()
|
||||
const error = errorHandler(err, config.environment)
|
||||
return sendResponseNotFound(res, error)
|
||||
}
|
||||
|
||||
const result = {
|
||||
_data: {
|
||||
permissions: response
|
||||
}
|
||||
}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const postPermissionController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const created_by = req.headers['uuid_requester'] || null
|
||||
|
||||
insertPermissionModel({...req.body, created_by, conn})
|
||||
.then((response) => {
|
||||
const result = {
|
||||
_data: {
|
||||
permissions: response
|
||||
}
|
||||
}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const putPermissionController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid_permission = req.params.uuid
|
||||
|
||||
modifyPermissionModel({...req.body, uuid_permission, conn})
|
||||
.then((response) => {
|
||||
const result = {
|
||||
_data: {
|
||||
permissions: response
|
||||
}
|
||||
}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const softDeletePermissionController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid_permission = req.params.uuid
|
||||
const deletedBy = req.headers['uuid_requester'] || null
|
||||
const {deleted} = req.body
|
||||
|
||||
softDeletePermissionModel({uuid_permission, deleted, deletedBy, conn})
|
||||
.then(() => {
|
||||
const result = {}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
getPermissionController,
|
||||
getPermissionByUuidController,
|
||||
postPermissionController,
|
||||
putPermissionController,
|
||||
softDeletePermissionController
|
||||
}
|
||||
|
|
@ -0,0 +1,166 @@
|
|||
import mysql from '../../adapters/mysql.js'
|
||||
import {
|
||||
getRoleModel,
|
||||
countRoleModel,
|
||||
insertRoleModel,
|
||||
modifyRoleModel,
|
||||
softDeleteRoleModel
|
||||
} from '../../models/authorization/roleModel.js'
|
||||
import { error404, errorHandler } from '../../utils/errors.js'
|
||||
import { sendResponseNotFound } from '../../utils/responses.js'
|
||||
import { noResults } from '../../validators/result-validators.js'
|
||||
|
||||
const getRoleController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
|
||||
Promise.all([
|
||||
getRoleModel({ ...req.query, conn }),
|
||||
countRoleModel({ ...req.query, conn })
|
||||
])
|
||||
.then(([getResults, countResults]) =>
|
||||
next({
|
||||
_data: { Role: getResults },
|
||||
_page: {
|
||||
totalElements: countResults,
|
||||
limit: req.query.limit || 100,
|
||||
page: req.query.page || (countResults && 1) || 0
|
||||
}
|
||||
})
|
||||
)
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const getRoleInfoController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid = req.params.uuid
|
||||
|
||||
getRoleModel({ uuid, 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)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
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)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const postRoleController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const createdby = req.headers['uuid-requester'] || null
|
||||
|
||||
insertRoleModel({ ...req.body, createdby, conn })
|
||||
.then((RoleInformation) => {
|
||||
const result = {
|
||||
_data: { Role: RoleInformation }
|
||||
}
|
||||
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const putRoleController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid = req.params.uuid
|
||||
|
||||
modifyRoleModel({ ...req.body, uuid, conn })
|
||||
.then((RoleInformation) => {
|
||||
const result = {
|
||||
_data: {
|
||||
message: 'Role created',
|
||||
Role: RoleInformation
|
||||
}
|
||||
}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const deleteRoleController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid = req.params.uuid
|
||||
const { deleted } = req.body
|
||||
const deletedby = req.headers['uuid-requester'] || null
|
||||
|
||||
softDeleteRoleModel({ uuid, deleted, deletedby, conn })
|
||||
.then(() => {
|
||||
const result = {}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
deleteRoleController,
|
||||
getRoleController,
|
||||
getRoleInfoController,
|
||||
postRoleController,
|
||||
putRoleController,
|
||||
getRoleByNameController
|
||||
}
|
||||
|
|
@ -0,0 +1,141 @@
|
|||
import mysql from '../../adapters/mysql'
|
||||
import {
|
||||
getRolesHasPermissionsModel,
|
||||
countRolesHasPermissionsModel,
|
||||
insertRolesHasPermissionsModel,
|
||||
modifyRolesHasPermissionsModel,
|
||||
softDeleteRolesHasPermissionsModel
|
||||
} from '../../repositories/authorization/roles_has_permissionsRepository'
|
||||
import { error404, errorHandler } from '../../utils/errors'
|
||||
import { noResults } from '../../validators/result-validators'
|
||||
|
||||
const getRolesHasPermissionsController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
|
||||
Promise.all([
|
||||
getRolesHasPermissionsModel({...req.query, uuidList, conn}),
|
||||
countRolesHasPermissionsModel({...req.query, uuidList, conn})
|
||||
])
|
||||
.then(([getResults, countResults]) => {
|
||||
next({
|
||||
_data: {roles_has_permissions: getResults},
|
||||
_page: {
|
||||
totalElements: countResults,
|
||||
limit: req.query.limit || 100,
|
||||
page: req.query.page || (countResults && 1) || 0
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const getRolesHasPermissionsControllerByRoleName = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const roleName = req.params.name
|
||||
|
||||
getRolesHasPermissionsModel({ roleName, conn })
|
||||
.then((response) => {
|
||||
if (noResults(response)) {
|
||||
const err = error404()
|
||||
const error = errorHandler(err, config.environment)
|
||||
return sendResponseNotFound(res, error)
|
||||
}
|
||||
|
||||
const result = {
|
||||
_data: {
|
||||
roles_has_permissions: response
|
||||
}
|
||||
}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const getPermissionsByRoleController = (req, res, next, config) => {
|
||||
const uuid_role = req.params.uuid
|
||||
const conn = mysql.start(config)
|
||||
|
||||
getRolesHasPermissionsModel({ uuid_role, conn })
|
||||
.then((response) => {
|
||||
if (noResults(response)) {
|
||||
const err = error404()
|
||||
const error = errorHandler(err, config.environment)
|
||||
return sendResponseNotFound(res, error)
|
||||
}
|
||||
|
||||
const result = {
|
||||
_data: {
|
||||
roles_has_permissions: response
|
||||
}
|
||||
}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const postRolesHasPermissionsController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const createdBy = req.headers['uuid-requester'] || null
|
||||
const roleUuid = req.body.uuid
|
||||
|
||||
insertRolesHasPermissionsModel({...req.body, roleUuid, createdBy, conn})
|
||||
.then((roles_has_permissions) => {
|
||||
const result = {
|
||||
_data: roles_has_permissions
|
||||
}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const softDeleteRolesHasPermissionsController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid = req.params.uuid
|
||||
const { deleted } = req.body
|
||||
const deletedby = req.headers['uuid-requester'] || null
|
||||
|
||||
softDeleteRolesHasPermissionsModel({ uuid, deleted, deletedby, conn })
|
||||
.then(() => {
|
||||
const result = {}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
getRolesHasPermissionsController,
|
||||
getPermissionsByRoleController,
|
||||
postRolesHasPermissionsController,
|
||||
softDeleteRolesHasPermissionsController,
|
||||
getRolesHasPermissionsControllerByRoleName
|
||||
}
|
||||
|
|
@ -0,0 +1,145 @@
|
|||
import bcrypt from 'bcrypt'
|
||||
import mysql from '../../adapters/mysql.js'
|
||||
import {
|
||||
getUserListModel,
|
||||
countUserListModel,
|
||||
insertUserModel,
|
||||
modifyUserModel,
|
||||
softDeleteUserModel
|
||||
} from '../../models/authorization/userModel.js'
|
||||
import { error404, errorHandler } from '../../utils/errors.js'
|
||||
import { sendResponseNotFound } from '../../utils/responses.js'
|
||||
import { noResults } from '../../validators/result-validators.js'
|
||||
|
||||
const getUserListController = (req, res, next, config) => {
|
||||
const uuidList = req.query.uuidList && req.query.uuidList.split(',')
|
||||
const conn = mysql.start(config)
|
||||
|
||||
Promise.all([
|
||||
getUserListModel({...req.query, uuidList, conn}),
|
||||
countUserListModel({...req.query, uuidList, conn})
|
||||
])
|
||||
.then(([getResults, countResults]) => {
|
||||
//exclude password (confidential)
|
||||
const users = getResults.map(({password, ...rest}) => rest)
|
||||
|
||||
next({
|
||||
_data: {users},
|
||||
_page: {
|
||||
totalElements: countResults,
|
||||
limit: req.query.limit || 100,
|
||||
page: req.query.page || (countResults && 1) || 0
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const getUserInfoController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid = req.params.uuid
|
||||
|
||||
getUserListModel({ uuid, conn })
|
||||
.then((response) => {
|
||||
if (noResults(response)) {
|
||||
const err = error404()
|
||||
const error = errorHandler(err, config.environment)
|
||||
return sendResponseNotFound(res, error)
|
||||
}
|
||||
|
||||
// exclude password (confidential)
|
||||
const users = response.map(({ password, ...rest }) => rest)
|
||||
|
||||
const result = {
|
||||
_data: {
|
||||
users
|
||||
}
|
||||
}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const postUserController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const createdby = req.headers['uuid-requester'] || null
|
||||
const { username, password} = req.body
|
||||
|
||||
//encrypt password
|
||||
bcrypt
|
||||
.hash(password, config.saltRounds)
|
||||
.then(hash => insertUserModel({ username, password: hash, email, fk_role, createdby, conn }))
|
||||
.then((users) => {
|
||||
const result = {
|
||||
_data: {
|
||||
message: 'User created',
|
||||
users
|
||||
}
|
||||
}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const putUserController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid = req.params.uuid
|
||||
|
||||
modifyUserModel({ ...req.body, uuid, conn })
|
||||
.then((users) => {
|
||||
const result = {
|
||||
_data: {
|
||||
message: 'User modified',
|
||||
users
|
||||
}
|
||||
}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
const softDeleteUserController = (req, res, next, config) => {
|
||||
const conn = mysql.start(config)
|
||||
const uuid = req.params.uuid
|
||||
const { deleted } = req.body
|
||||
const deletedby = req.headers['uuid-requester'] || null
|
||||
|
||||
softDeleteUserModel({ uuid, deleted, deletedby, conn })
|
||||
.then(() => {
|
||||
const result = {}
|
||||
next(result)
|
||||
})
|
||||
.catch((err) => {
|
||||
const error = errorHandler(err, config.environment)
|
||||
res.status(error.code).json(error)
|
||||
})
|
||||
.finally(() => {
|
||||
mysql.end(conn)
|
||||
})
|
||||
}
|
||||
|
||||
export { softDeleteUserController, getUserInfoController, getUserListController, postUserController, putUserController }
|
||||
Loading…
Reference in New Issue