Marie
2025-07-07 14:22:54 +02:00
committed by GitHub
parent f6e38bd280
commit 635300b1dd
3 changed files with 13 additions and 14 deletions

View File

@ -18,9 +18,7 @@ export class ApprovedAccessDomainExceptionFilter implements ExceptionFilter {
case ApprovedAccessDomainExceptionCode.APPROVED_ACCESS_DOMAIN_ALREADY_VALIDATED:
case ApprovedAccessDomainExceptionCode.APPROVED_ACCESS_DOMAIN_MUST_BE_A_COMPANY_DOMAIN:
throw new ForbiddenError(exception.message, {
extensions: {
userFriendlyMessage: exception.userFriendlyMessage,
},
userFriendlyMessage: exception.userFriendlyMessage,
});
default: {
const _exhaustiveCheck: never = exception.code;

View File

@ -30,6 +30,11 @@ export enum ErrorCode {
INTERNAL_SERVER_ERROR = 'INTERNAL_SERVER_ERROR',
}
type RestrictedGraphQLErrorExtensions = {
userFriendlyMessage?: string;
subCode?: string;
};
export class BaseGraphQLError extends GraphQLError {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
public extensions: Record<string, any>;
@ -110,7 +115,7 @@ export class ValidationError extends BaseGraphQLError {
export class AuthenticationError extends BaseGraphQLError {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
constructor(message: string, extensions?: Record<string, any>) {
constructor(message: string, extensions?: RestrictedGraphQLErrorExtensions) {
super(message, ErrorCode.UNAUTHENTICATED, extensions);
Object.defineProperty(this, 'name', { value: 'AuthenticationError' });
@ -119,7 +124,7 @@ export class AuthenticationError extends BaseGraphQLError {
export class ForbiddenError extends BaseGraphQLError {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
constructor(message: string, extensions?: Record<string, any>) {
constructor(message: string, extensions?: RestrictedGraphQLErrorExtensions) {
super(message, ErrorCode.FORBIDDEN, extensions);
Object.defineProperty(this, 'name', { value: 'ForbiddenError' });
@ -151,7 +156,7 @@ export class PersistedQueryNotSupportedError extends BaseGraphQLError {
export class UserInputError extends BaseGraphQLError {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
constructor(message: string, extensions?: Record<string, any>) {
constructor(message: string, extensions?: RestrictedGraphQLErrorExtensions) {
super(message, ErrorCode.BAD_USER_INPUT, extensions);
Object.defineProperty(this, 'name', { value: 'UserInputError' });
@ -160,7 +165,7 @@ export class UserInputError extends BaseGraphQLError {
export class NotFoundError extends BaseGraphQLError {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
constructor(message: string, extensions?: Record<string, any>) {
constructor(message: string, extensions?: RestrictedGraphQLErrorExtensions) {
super(message, ErrorCode.NOT_FOUND, extensions);
Object.defineProperty(this, 'name', { value: 'NotFoundError' });
@ -177,7 +182,7 @@ export class MethodNotAllowedError extends BaseGraphQLError {
export class ConflictError extends BaseGraphQLError {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
constructor(message: string, extensions?: Record<string, any>) {
constructor(message: string, extensions?: RestrictedGraphQLErrorExtensions) {
super(message, ErrorCode.CONFLICT, extensions);
Object.defineProperty(this, 'name', { value: 'ConflictError' });

View File

@ -20,15 +20,11 @@ export const handleWorkflowTriggerException = (
case WorkflowTriggerExceptionCode.INVALID_WORKFLOW_STATUS:
case WorkflowTriggerExceptionCode.FORBIDDEN:
throw new UserInputError(exception.message, {
extensions: {
userFriendlyMessage: exception.userFriendlyMessage,
},
userFriendlyMessage: exception.userFriendlyMessage,
});
case WorkflowTriggerExceptionCode.NOT_FOUND:
throw new NotFoundError(exception.message, {
extensions: {
userFriendlyMessage: exception.userFriendlyMessage,
},
userFriendlyMessage: exception.userFriendlyMessage,
});
case WorkflowTriggerExceptionCode.INTERNAL_ERROR:
throw exception;