UNPKG

@bee.js/node

Version:

A JavaScript framework for making Node.js API´s

47 lines (40 loc) 1.31 kB
module.exports = async function request(req, res, ...validations) { const failConditions = []; const error = {}; let valid = true; req.onlyFields = {}; for (let i = 0; i < validations.length; i++) { const validation = validations[i]; // filter fields if (validation.onlyFields && validation.onlyFields !== "*") req.onlyFields[validation.model] = validation.onlyFields .split(",") .map((field) => field.trim()); //TODO otimizar colocando na memoria // fail conditions for ([condition, fn] of Object.entries(validation.failConditions || [])) { let fail = await fn(req); if (!fail || fail.error === true) { failConditions.push(condition); error.message = fail && fail.message ? fail.message : ""; valid = false; } } } return new Promise(function (resolve, reject) { valid === true ? resolve(req) : reject({ requestError: function (_error = error, errorCode = 400) { try { res.status(errorCode).send({ error: { message: _error.message || "There was an error in the request", }, failConditions, }); } catch {} }, }); }); };