55 lines
1.4 KiB
JavaScript
Raw Normal View History

2018-01-22 12:25:50 +01:00
import { get, isEmpty, isObject } from 'lodash';
2018-01-22 12:05:22 +01:00
export default function checkFormValidity(
settingType,
data,
providerToEdit = ''
) {
2018-01-22 12:05:22 +01:00
const formErrors = [];
switch (settingType) {
case 'providers': {
const isProviderEnabled = get(data, 'enabled');
const keys = providerToEdit === 'email' ? [] : ['key', 'secret'];
2018-01-22 12:05:22 +01:00
keys.forEach(key => {
2018-01-22 12:05:22 +01:00
if (isProviderEnabled && isEmpty(get(data, key))) {
formErrors.push({
name: key,
errors: [{ id: 'components.Input.error.validation.required' }],
});
2018-01-22 12:05:22 +01:00
}
});
break;
}
2018-01-22 12:25:50 +01:00
case 'email-templates': {
Object.keys(data.options).forEach(value => {
2018-01-22 12:25:50 +01:00
if (isObject(data.options[value])) {
Object.keys(data.options[value]).forEach(subValue => {
2018-01-22 12:25:50 +01:00
if (isEmpty(get(data, ['options', value, subValue]))) {
formErrors.push({
name: `options.${value}.${subValue}`,
errors: [{ id: 'components.Input.error.validation.required' }],
});
2018-01-22 12:25:50 +01:00
}
});
}
if (
value !== 'response_email' &&
isEmpty(get(data, ['options', value]))
) {
formErrors.push({
name: `options.${value}`,
errors: [{ id: 'components.Input.error.validation.required' }],
});
2018-01-22 12:25:50 +01:00
}
});
break;
}
2018-01-22 12:05:22 +01:00
default:
}
return formErrors;
}