diff --git a/helpers/validation.js b/helpers/validation.js deleted file mode 100644 index a1c2436..0000000 --- a/helpers/validation.js +++ /dev/null @@ -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, -};