Arno Kaimbacher
4714dfdd94
All checks were successful
CI Pipeline / japa-tests (push) Successful in 46s
- npm normal updates - add all xslt and style asstes in extra folder public/assets2 - linting corrections - delete local .env.test from git tracking: git rm --cached .env.test - add .env.test into .gitignore file - add edit functionality for editing by submitter - npm updates -added xslt3 packeage for builfing sef files - added Language.ts class vor language table - added version to datasetxml2oai-pmh.xslt
75 lines
2.7 KiB
TypeScript
75 lines
2.7 KiB
TypeScript
/*
|
|
|--------------------------------------------------------------------------
|
|
| Preloaded File
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Any code written inside this file will be executed during the application
|
|
| boot.
|
|
https://issuehunt.io/r/adonisjs/validator/issues/84
|
|
|
|
|
*/
|
|
// import { string } from '@ioc:Adonis/Core/Helpers';
|
|
import { validator } from '@ioc:Adonis/Core/Validator';
|
|
|
|
validator.rule('uniqueArray', (dataArray, [field], { pointer, arrayExpressionPointer, errorReporter }) => {
|
|
const array = dataArray; //validator.helpers.getFieldValue(data, field, tip);
|
|
|
|
if (!Array.isArray(array)) {
|
|
throw new Error(`The ${pointer} must be an array.`);
|
|
}
|
|
|
|
const uniqueValues = new Set();
|
|
for (let i = 0; i < array.length; i++) {
|
|
const item = array[i];
|
|
const attributeValue = item[field]; // Extract the attribute value for uniqueness check
|
|
|
|
if (uniqueValues.has(attributeValue)) {
|
|
// throw new Error(`The ${field} array contains duplicate values for the ${field} attribute.`)
|
|
errorReporter.report(
|
|
pointer,
|
|
'uniqueArray', // Keep an eye on this
|
|
`The ${pointer} array contains duplicate values for the ${field} attribute.`,
|
|
arrayExpressionPointer,
|
|
{ field, array: pointer },
|
|
);
|
|
return;
|
|
}
|
|
|
|
uniqueValues.add(attributeValue);
|
|
}
|
|
});
|
|
|
|
validator.rule(
|
|
'translatedLanguage',
|
|
(value, [mainLanguageField, typeField], { root, tip, pointer, arrayExpressionPointer, errorReporter }) => {
|
|
if (typeof value !== 'string') {
|
|
return;
|
|
}
|
|
// const fieldValue = validator. getValue(data, field)
|
|
// this should return the "category_id" value present in "root", but i got undefined
|
|
const mainLanguage = validator.helpers.getFieldValue(mainLanguageField, root, tip);
|
|
const type = validator.helpers.getFieldValue(typeField, root, tip);
|
|
|
|
if (type && type === 'Translated') {
|
|
if (value === mainLanguage) {
|
|
errorReporter.report(
|
|
pointer,
|
|
'translatedLanguage', // Keep an eye on this
|
|
'translatedLanguage validation failed',
|
|
arrayExpressionPointer,
|
|
{ mainLanguage },
|
|
);
|
|
}
|
|
}
|
|
|
|
// if (value !== string.camelCase(value)) {
|
|
// options.errorReporter.report(
|
|
// options.pointer,
|
|
// 'camelCase',
|
|
// 'camelCase validation failed',
|
|
// options.arrayExpressionPointer
|
|
// );
|
|
// }
|
|
},
|
|
);
|