express-mongo-boilerplate-generator
Version:
A production-ready boilerplate generator for Express.js and MongoDB with service layer architecture and Joi validation
36 lines (33 loc) • 883 B
JavaScript
const Joi = require('joi');
const validate = require('../middleware/validate');
const updateUserSchema = Joi.object({
name: Joi.string()
.min(2)
.max(50)
.optional(),
phoneNumber: Joi.string()
.pattern(/^[0-9]{10,15}$/)
.optional()
.messages({
'string.pattern.base': 'Please provide a valid phone number'
}),
address: Joi.object({
street: Joi.string().optional(),
city: Joi.string().optional(),
state: Joi.string().optional(),
country: Joi.string().optional(),
zipCode: Joi.string().optional()
}).optional()
});
const userIdSchema = Joi.object({
id: Joi.string()
.pattern(/^[0-9a-fA-F]{24}$/)
.required()
.messages({
'string.pattern.base': 'Invalid user ID format'
})
});
module.exports = {
validateUpdateUser: validate(updateUserSchema),
validateUserId: validate(userIdSchema, 'params')
};