ncc-prototype-email-alerts-sub
Version:
Northumberland Council Front End Email Alerts Subscription Prototype
36 lines (35 loc) • 1.52 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const logger_1 = __importDefault(require("../../libs/logger"));
const validate = (req, validators) => {
var _a;
if (validators.length === 0)
return true;
const bodyValues = Object.entries(req.body);
req.session.formErrors = [];
req.session.error = {};
const errorObject = (_a = req.session) === null || _a === void 0 ? void 0 : _a.error;
const validationResult = validators.map((item) => {
const { fieldNames, validate, message } = item;
return fieldNames.map((fieldName) => {
return bodyValues.map((bodyValue) => {
var _a;
if (fieldName === bodyValue[0]) {
const isValid = validate(bodyValue[1]);
if (!isValid) {
logger_1.default.debug(`${fieldName} ${bodyValue[1]} is not valid`);
(_a = req.session.formErrors) === null || _a === void 0 ? void 0 : _a.push({ errorMessage: message, field: fieldName });
errorObject[fieldName] = { text: `${message}` };
}
return isValid;
}
return true;
}).flat();
}).flat();
});
return !validationResult.flat().some((i) => i == false);
};
exports.default = validate;