@tasolutions/express-core
Version:
All libs for express
44 lines (37 loc) • 1.41 kB
JavaScript
const v1Response = require('../../utils/v1Response');
module.exports = {
/**
* Function middleware
* @param req
* @param res
* @param next
* @return {*}
*/
middleware: async (req, res, next) => {
const moduleName = req.model_name;
const parsedBody = req.body;
const parsedFiles = req.files || {};
const allowedMethods = ['POST', 'PUT'];
if (parsedBody && Object.keys(parsedBody).length > 0) {
if (allowedMethods.includes(req.method) && !(parsedBody[moduleName] || parsedFiles[moduleName])) {
return v1Response.error(req, res, { message: `${moduleName} is required` }, {});
}
}
req.body = parsedBody[moduleName] || {};
req.files = parsedFiles[moduleName] || {};
const identifiers = ['organization', 'user', 'agency', 'current-agency'];
identifiers.forEach(identifier => {
const idValue = req.headers[`st-${identifier}-id`];
if (idValue) {
if (identifier == 'current-agency') identifier = 'agency';
const key = `${identifier}_identifier`;
if (req.method === 'POST' || req.method === 'PUT') {
req.body[key] = idValue;
} else {
req.query[key] = idValue;
}
}
});
next();
},
}