UNPKG

node-rigorous

Version:
37 lines (27 loc) 1.13 kB
const rigorousMongoose = require('mongoose'); const RigorousError = require('../facades/RigorousError'); const errorsMessages = require('../etc/errorsMessages'); const helperFormatChecker = require('../helpers/format_checker'); module.exports = (modelName, attribute) => { return { validator: async (value) => { let document = null; const condition = { [attribute]: value }; try { document = await rigorousMongoose .model(modelName) .findOne(condition) .select('_id') .exec(); } catch (error) { throw new RigorousError(errorsMessages.OperationError, error); } if (!helperFormatChecker.isNil(document)) { const errorWithAttribute = errorsMessages.ValidatorError.AlreayExist.withAttribute(attribute.toUpperCase()); throw new RigorousError(errorWithAttribute); } return true; }, message: props => `${props.value} already exist`, }; };