Files
twenty/packages/twenty-server/src/engine/api/rest/errors/RestApiException.ts
2025-04-01 17:22:24 +02:00

37 lines
966 B
TypeScript

import { BadRequestException } from '@nestjs/common';
import { BaseGraphQLError } from 'src/engine/core-modules/graphql/utils/graphql-errors.util';
const formatMessage = (error: BaseGraphQLError) => {
let formattedMessage = error.extensions
? error.extensions.response?.error ||
error.extensions.response ||
error.message
: error.error || error.message;
formattedMessage = formattedMessage
.replace(/"/g, "'")
.replace("Variable '$data' got i", 'I')
.replace("Variable '$input' got i", 'I');
const regex = /Field '[^']+' is not defined by type .*/;
const match = formattedMessage.match(regex);
if (match) {
formattedMessage = match[0];
}
return formattedMessage;
};
export class RestApiException extends BadRequestException {
constructor(errors: BaseGraphQLError[]) {
super({
statusCode: 400,
messages: errors.map((error) => formatMessage(error)),
error: 'Bad Request',
});
}
}