move to folder validate
This commit is contained in:
@@ -1,82 +0,0 @@
|
||||
const Joi = require('joi');
|
||||
|
||||
// ========================
|
||||
// Auth Validation
|
||||
// ========================
|
||||
const registerSchema = Joi.object({
|
||||
fullname: Joi.string().min(3).max(100).required(),
|
||||
name: Joi.string().alphanum().min(3).max(50).required(),
|
||||
email: Joi.string().email().required(),
|
||||
phone: Joi.string()
|
||||
.pattern(/^(?:\+62|0)8\d{7,10}$/)
|
||||
.required()
|
||||
.messages({
|
||||
'string.pattern.base':
|
||||
'Phone number must be a valid Indonesian number in format +628XXXXXXXXX'
|
||||
}),
|
||||
password: Joi.string()
|
||||
.min(8)
|
||||
.pattern(/[A-Z]/, 'uppercase letter')
|
||||
.pattern(/[a-z]/, 'lowercase letter')
|
||||
.pattern(/\d/, 'number')
|
||||
.pattern(/[!@#$%^&*(),.?":{}|<>]/, 'special character')
|
||||
.required()
|
||||
.messages({
|
||||
'string.min': 'Password must be at least 8 characters long',
|
||||
'string.pattern.name': 'Password must contain at least one {#name}'
|
||||
})
|
||||
});
|
||||
const loginSchema = Joi.object({
|
||||
identifier: Joi.string().required(),
|
||||
password: Joi.string().required(),
|
||||
captcha: Joi.string().required(),
|
||||
captchaText: Joi.string().required()
|
||||
});
|
||||
const newPasswordSchema = Joi.object({
|
||||
new_password: Joi.string()
|
||||
.min(8)
|
||||
.pattern(/[A-Z]/, 'uppercase letter')
|
||||
.pattern(/[a-z]/, 'lowercase letter')
|
||||
.pattern(/\d/, 'number')
|
||||
.pattern(/[!@#$%^&*(),.?":{}|<>]/, 'special character')
|
||||
.required()
|
||||
.messages({
|
||||
'string.min': 'Password must be at least 8 characters long',
|
||||
'string.pattern.name': 'Password must contain at least one {#name}'
|
||||
})
|
||||
})
|
||||
|
||||
// ========================
|
||||
// Users Validation
|
||||
// ========================
|
||||
const userSchema = Joi.object({
|
||||
fullname: Joi.string().min(3).max(100).required(),
|
||||
name: Joi.string().alphanum().min(3).max(50).required(),
|
||||
email: Joi.string().email().required(),
|
||||
phone: Joi.string()
|
||||
.pattern(/^(?:\+62|0)8\d{7,10}$/)
|
||||
.required()
|
||||
.messages({
|
||||
'string.pattern.base':
|
||||
'Phone number must be a valid Indonesian number in format +628XXXXXXXXX'
|
||||
}),
|
||||
password: Joi.string()
|
||||
.min(8)
|
||||
.pattern(/[A-Z]/, 'uppercase letter')
|
||||
.pattern(/[a-z]/, 'lowercase letter')
|
||||
.pattern(/\d/, 'number')
|
||||
.pattern(/[!@#$%^&*(),.?":{}|<>]/, 'special character')
|
||||
.required()
|
||||
.messages({
|
||||
'string.min': 'Password must be at least 8 characters long',
|
||||
'string.pattern.name': 'Password must contain at least one {#name}'
|
||||
}),
|
||||
role_id: Joi.number().integer().min(1)
|
||||
});
|
||||
|
||||
module.exports = {
|
||||
registerSchema,
|
||||
loginSchema,
|
||||
newPasswordSchema,
|
||||
userSchema,
|
||||
};
|
||||
Reference in New Issue
Block a user