47 lines
1.6 KiB
TypeScript
47 lines
1.6 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(
|
||
|
'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
|
||
|
// );
|
||
|
// }
|
||
|
},
|
||
|
);
|