37 lines
966 B
TypeScript
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',
|
|
});
|
|
}
|
|
}
|