- small adaption for OpenAire inside OaiController.ts
Some checks failed
CI Pipeline / japa-tests (push) Failing after 59s
Some checks failed
CI Pipeline / japa-tests (push) Failing after 59s
- validate abstratct for max 2500 characters - small changes inside page for releasing a dataset - npm updates - adapted validating messages
This commit is contained in:
parent
005df2e454
commit
49ea0fc967
12 changed files with 533 additions and 485 deletions
|
@ -216,6 +216,7 @@ export default class OaiController {
|
|||
|
||||
const sets: { [key: string]: string } = {
|
||||
'open_access': 'Set for open access licenses',
|
||||
'openaire_data': "OpenAIRE",
|
||||
'doc-type:ResearchData': 'Set for document type ResearchData',
|
||||
...(await this.getSetsForDatasetTypes()),
|
||||
...(await this.getSetsForCollections()),
|
||||
|
|
|
@ -202,7 +202,7 @@ export default class DatasetController {
|
|||
descriptions: vine
|
||||
.array(
|
||||
vine.object({
|
||||
value: vine.string().trim().minLength(3).maxLength(255),
|
||||
value: vine.string().trim().minLength(3).maxLength(2500),
|
||||
type: vine.enum(Object.values(DescriptionTypes)),
|
||||
language: vine
|
||||
.string()
|
||||
|
@ -279,7 +279,7 @@ export default class DatasetController {
|
|||
descriptions: vine
|
||||
.array(
|
||||
vine.object({
|
||||
value: vine.string().trim().minLength(3).maxLength(255),
|
||||
value: vine.string().trim().minLength(3).maxLength(2500),
|
||||
type: vine.enum(Object.values(DescriptionTypes)),
|
||||
language: vine
|
||||
.string()
|
||||
|
@ -635,6 +635,7 @@ export default class DatasetController {
|
|||
'titles.*.language.translatedLanguage': 'The language of the translated title must be different from the language of the dataset',
|
||||
|
||||
'descriptions.0.value.minLength': 'Main Abstract must be at least {{ min }} characters long',
|
||||
'descriptions.0.value.maxLength': 'Main Abstract must be less than {{ max }} characters long',
|
||||
'descriptions.0.value.required': 'Main Abstract is required',
|
||||
'descriptions.*.value.required': 'Additional description is required, if defined',
|
||||
'descriptions.*.type.required': 'Additional description type is required',
|
||||
|
@ -644,6 +645,7 @@ export default class DatasetController {
|
|||
|
||||
'authors.array.minLength': 'at least {{ min }} author must be defined',
|
||||
'authors.distinct': 'The {{ field }} array must have unique values based on the {{ fields }} attribute.',
|
||||
'authors.*.email.isUnique': 'the email of the new creator already exists in the database',
|
||||
'contributors.*.pivot_contributor_type.required': 'contributor type is required, if defined',
|
||||
'contributors.distinct': 'The {{ field }} array must have unique values based on the {{ fields }} attribute.',
|
||||
|
||||
|
|
43
app/middleware/normalize_newlines_middleware.ts
Normal file
43
app/middleware/normalize_newlines_middleware.ts
Normal file
|
@ -0,0 +1,43 @@
|
|||
/*
|
||||
* This middleware class normalizes newlines in the request input data by replacing
|
||||
* all occurrences of '\r\n' with '\n' recursively for strings, arrays, and objects.
|
||||
*/
|
||||
import type { HttpContext } from '@adonisjs/core/http';
|
||||
import type { NextFn } from '@adonisjs/core/types/http';
|
||||
|
||||
export default class NormalizeNewlinesMiddleware {
|
||||
async handle(ctx: HttpContext, next: NextFn) {
|
||||
// Function to recursively normalize newlines
|
||||
const normalizeNewlines = (input: any): any => {
|
||||
if (typeof input === 'string') {
|
||||
return input.replace(/\r\n/g, '\n');
|
||||
} else if (Array.isArray(input)) {
|
||||
return input.map((item) => normalizeNewlines(item));
|
||||
} else if (typeof input === 'object' && input !== null) {
|
||||
for (const key in input) {
|
||||
input[key] = normalizeNewlines(input[key]);
|
||||
}
|
||||
return input;
|
||||
}
|
||||
return input;
|
||||
};
|
||||
/**
|
||||
* Middleware logic goes here (before the next call)
|
||||
*/
|
||||
// console.log(ctx)
|
||||
// Get all request input
|
||||
const input = ctx.request.all();
|
||||
|
||||
// Normalize newlines in text inputs
|
||||
const normalizedInput = normalizeNewlines(input);
|
||||
|
||||
// Replace request input with normalized data
|
||||
ctx.request.updateBody(normalizedInput);
|
||||
|
||||
/**
|
||||
* Call next method in the pipeline and return its output
|
||||
*/
|
||||
const output = await next();
|
||||
return output;
|
||||
}
|
||||
}
|
|
@ -43,7 +43,7 @@ export const createDatasetValidator = vine.compile(
|
|||
descriptions: vine
|
||||
.array(
|
||||
vine.object({
|
||||
value: vine.string().trim().minLength(3).maxLength(255),
|
||||
value: vine.string().trim().minLength(3).maxLength(2500),
|
||||
type: vine.enum(Object.values(DescriptionTypes)),
|
||||
language: vine
|
||||
.string()
|
||||
|
@ -164,7 +164,7 @@ export const updateDatasetValidator = vine.compile(
|
|||
titles: vine
|
||||
.array(
|
||||
vine.object({
|
||||
value: vine.string().trim().minLength(3).maxLength(255),
|
||||
value: vine.string().trim().minLength(3).maxLength(2500),
|
||||
type: vine.enum(Object.values(TitleTypes)),
|
||||
language: vine
|
||||
.string()
|
||||
|
@ -302,6 +302,7 @@ let messagesProvider = new SimpleMessagesProvider({
|
|||
'titles.*.language.translatedLanguage': 'The language of the translated title must be different from the language of the dataset',
|
||||
|
||||
'descriptions.0.value.minLength': 'Main Abstract must be at least {{ min }} characters long',
|
||||
'descriptions.0.value.maxLength': 'Main Abstract must be less than {{ max }} characters long',
|
||||
'descriptions.0.value.required': 'Main Abstract is required',
|
||||
'descriptions.*.value.required': 'Additional description is required, if defined',
|
||||
'descriptions.*.type.required': 'Additional description type is required',
|
||||
|
@ -311,6 +312,7 @@ let messagesProvider = new SimpleMessagesProvider({
|
|||
|
||||
'authors.array.minLength': 'at least {{ min }} author must be defined',
|
||||
'authors.distinct': 'The {{ field }} array must have unique values based on the {{ fields }} attribute.',
|
||||
'authors.*.email.isUnique': 'the email of the new creator already exists in the database',
|
||||
'contributors.*.pivot_contributor_type.required': 'contributor type is required, if defined',
|
||||
'contributors.distinct': 'The {{ field }} array must have unique values based on the {{ fields }} attribute.',
|
||||
|
||||
|
|
Loading…
Add table
editor.link_modal.header
Reference in a new issue