39 lines
1007 B
JavaScript
Raw Normal View History

2020-01-06 16:01:42 +01:00
import * as yup from 'yup';
2020-01-10 15:30:34 +01:00
import { translatedErrors } from 'strapi-helper-plugin';
2020-01-15 12:17:44 +01:00
import { NAME_REGEX, URL_REGEX } from './fieldsRegex';
const schema = yup.object().shape({
name: yup
.string(translatedErrors.string)
.required(translatedErrors.required)
.matches(NAME_REGEX, translatedErrors.regex),
url: yup
.string(translatedErrors.string)
.required(translatedErrors.required)
.matches(URL_REGEX, translatedErrors.regex),
2020-01-16 18:17:30 +01:00
headers: yup.lazy(array => {
let baseSchema = yup.array();
if (array.length === 1) {
const { key, value } = array[0];
if (key === '' && value === '') {
return baseSchema;
}
}
return baseSchema.of(
2020-01-15 12:17:44 +01:00
yup.object().shape({
2020-01-16 18:17:30 +01:00
key: yup.string().required(translatedErrors.required),
value: yup.string().required(translatedErrors.required),
2020-01-15 12:17:44 +01:00
})
2020-01-16 18:17:30 +01:00
);
}),
2021-06-17 09:55:32 +02:00
events: yup
.array()
.min(1, translatedErrors.min)
.required(translatedErrors.required),
2020-01-15 12:17:44 +01:00
});
export default schema;