2020-04-01 13:25:34 +02:00
|
|
|
/* eslint-disable no-template-curly-in-string */
|
|
|
|
import * as yup from 'yup';
|
|
|
|
import { translatedErrors as errorsTrads } from 'strapi-helper-plugin';
|
|
|
|
import getTrad from './getTrad';
|
|
|
|
|
|
|
|
const urlSchema = yup.object().shape({
|
|
|
|
filesToDownload: yup
|
|
|
|
.array()
|
|
|
|
.of(yup.string())
|
|
|
|
|
|
|
|
.test({
|
|
|
|
name: 'isUrlValid',
|
|
|
|
message: '${path}',
|
|
|
|
test(values) {
|
|
|
|
const filtered = values.filter(val => {
|
|
|
|
return !val.startsWith('http');
|
|
|
|
});
|
|
|
|
|
|
|
|
const filteredLength = filtered.length;
|
|
|
|
|
|
|
|
if (filteredLength === 0) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
const errorMessage =
|
|
|
|
filteredLength > 1
|
|
|
|
? 'form.upload-url.error.url.invalids'
|
|
|
|
: 'form.upload-url.error.url.invalid';
|
|
|
|
|
|
|
|
return this.createError({
|
|
|
|
path: this.path,
|
|
|
|
message: getTrad(errorMessage),
|
|
|
|
params: { wrongURLsNumber: filtered.length },
|
|
|
|
});
|
|
|
|
},
|
|
|
|
})
|
|
|
|
.min(0, errorsTrads.min)
|
2020-04-01 13:27:52 +02:00
|
|
|
.max(20, errorsTrads.max),
|
2020-04-01 13:25:34 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
export default urlSchema;
|