48 lines
1.8 KiB
JavaScript
48 lines
1.8 KiB
JavaScript
import { defineRule } from 'vee-validate';
|
|
import errorMessages from '@/constants/error-messages';
|
|
import globalRules from '@/constants/global-rules';
|
|
import { required, regex } from '@/helpers/validation-rules';
|
|
|
|
/**
|
|
* @summary Define global rules related to names
|
|
*/
|
|
function defineGlobalNameRules() {
|
|
defineRule(globalRules.FIRST_NAME_REQUIRED, required(errorMessages.FIRST_NAME_REQUIRED));
|
|
defineRule(globalRules.LAST_NAME_REQUIRED, required(errorMessages.LAST_NAME_REQUIRED));
|
|
defineRule(globalRules.POLICYHOLDER_FIRST_NAME_REQUIRED,
|
|
required(errorMessages.POLICYHOLDER_FIRST_NAME_REQUIRED));
|
|
defineRule(globalRules.POLICYHOLDER_LAST_NAME_REQUIRED,
|
|
required(errorMessages.POLICYHOLDER_LAST_NAME_REQUIRED));
|
|
}
|
|
|
|
/**
|
|
* @summary Define global rules related to email addresses
|
|
*/
|
|
function defineGlobalEmailRules() {
|
|
defineRule(globalRules.EMAIL_ADDRESS_REQUIRED, required(errorMessages.EMAIL_ADDRESS_REQUIRED));
|
|
defineRule(globalRules.EMAIL_ADDRESS_FORMAT,
|
|
regex(/^([a-zA-Z0-9_\-.+]+)@([a-zA-Z0-9_\-.]+)\.([a-zA-Z]{2,})$/,
|
|
errorMessages.EMAIL_ADDRESS_FORMAT));
|
|
}
|
|
|
|
/**
|
|
* @summary Define global rules related to phone numbers
|
|
*/
|
|
function defineGlobalPhoneNumberRules() {
|
|
defineRule(globalRules.PHONE_NUMBER_REQUIRED, required(errorMessages.PHONE_NUMBER_REQUIRED));
|
|
defineRule(globalRules.PHONE_NUMBER_FORMAT,
|
|
regex(/^(\([0-9]{3}\)|[0-9]{3}) *[-.]? *[0-9]{3} *[-.]? *[0-9]{4}$/,
|
|
errorMessages.PHONE_NUMBER_FORMAT));
|
|
}
|
|
|
|
/**
|
|
* @function defineGlobalRules
|
|
* @summary Define all global rules
|
|
*/
|
|
export default function defineGlobalRules() {
|
|
defineGlobalNameRules();
|
|
defineGlobalEmailRules();
|
|
defineGlobalPhoneNumberRules();
|
|
|
|
defineRule(globalRules.OPTION_REQUIRED, required(errorMessages.OPTION_REQUIRED));
|
|
}
|