node-express-mongodb-jwt-rest-api-skeleton
Version:
Node.js express.js MongoDB JWT REST API - This is a basic API REST skeleton written on JavaScript using async/await. Great for building a starter web API for your front-end (Android, iOS, Vue, react, angular, or anything that can consume an API)
26 lines (23 loc) • 720 B
JavaScript
const User = require('../../../models/user')
const { itemNotFound, buildErrObject } = require('../../../middleware/utils')
/**
* Checks against user if has quested role
* @param {Object} data - data object
* @param {*} next - next callback
*/
const checkPermissions = ({ id = '', roles = [] }, next) => {
return new Promise((resolve, reject) => {
User.findById(id, async (err, result) => {
try {
await itemNotFound(err, result, 'USER_NOT_FOUND')
if (roles.indexOf(result.role) > -1) {
return resolve(next())
}
reject(buildErrObject(401, 'UNAUTHORIZED'))
} catch (error) {
reject(error)
}
})
})
}
module.exports = { checkPermissions }