From 6792056b73293c3ab5d6d49ffd205e6cd00a4228 Mon Sep 17 00:00:00 2001 From: Weiko Date: Fri, 9 Aug 2024 16:07:58 +0200 Subject: [PATCH] Fix query runner exceptions not being handled properly (#6593) ## Context We recently introduced a try catch in the different resolvers of the query runner to handle exceptions via workspaceQueryRunnerGraphqlApiExceptionHandler and convert them to proper errors. However this was never called as expected because query runner methods were async. This is a regression from https://github.com/twentyhq/twenty/pull/6324 ## Before Screenshot 2024-08-09 at 15 34 02 ## After Screenshot 2024-08-09 at 15 33 46 --- .../factories/create-many-resolver.factory.ts | 4 ++-- .../factories/create-one-resolver.factory.ts | 4 ++-- .../factories/delete-many-resolver.factory.ts | 4 ++-- .../factories/delete-one-resolver.factory.ts | 4 ++-- .../factories/find-duplicates-resolver.factory.ts | 4 ++-- .../factories/find-many-resolver.factory.ts | 4 ++-- .../factories/find-one-resolver.factory.ts | 4 ++-- .../factories/update-many-resolver.factory.ts | 4 ++-- .../factories/update-one-resolver.factory.ts | 4 ++-- 9 files changed, 18 insertions(+), 18 deletions(-) diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/create-many-resolver.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/create-many-resolver.factory.ts index 6b40eb2db9..4674881924 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/create-many-resolver.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/create-many-resolver.factory.ts @@ -25,9 +25,9 @@ export class CreateManyResolverFactory ): Resolver { const internalContext = context; - return (_source, args, context, info) => { + return async (_source, args, context, info) => { try { - return this.workspaceQueryRunnerService.createMany(args, { + return await this.workspaceQueryRunnerService.createMany(args, { authContext: internalContext.authContext, objectMetadataItem: internalContext.objectMetadataItem, info, diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/create-one-resolver.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/create-one-resolver.factory.ts index 5ae1a939e6..24fdfe0239 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/create-one-resolver.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/create-one-resolver.factory.ts @@ -25,9 +25,9 @@ export class CreateOneResolverFactory ): Resolver { const internalContext = context; - return (_source, args, context, info) => { + return async (_source, args, context, info) => { try { - return this.workspaceQueryRunnerService.createOne(args, { + return await this.workspaceQueryRunnerService.createOne(args, { authContext: internalContext.authContext, objectMetadataItem: internalContext.objectMetadataItem, info, diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/delete-many-resolver.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/delete-many-resolver.factory.ts index ba415d92cc..a8d36f3e49 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/delete-many-resolver.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/delete-many-resolver.factory.ts @@ -25,9 +25,9 @@ export class DeleteManyResolverFactory ): Resolver { const internalContext = context; - return (_source, args, context, info) => { + return async (_source, args, context, info) => { try { - return this.workspaceQueryRunnerService.deleteMany(args, { + return await this.workspaceQueryRunnerService.deleteMany(args, { authContext: internalContext.authContext, objectMetadataItem: internalContext.objectMetadataItem, info, diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/delete-one-resolver.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/delete-one-resolver.factory.ts index f9bde1bf37..93f249cdd6 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/delete-one-resolver.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/delete-one-resolver.factory.ts @@ -25,9 +25,9 @@ export class DeleteOneResolverFactory ): Resolver { const internalContext = context; - return (_source, args, context, info) => { + return async (_source, args, context, info) => { try { - return this.workspaceQueryRunnerService.deleteOne(args, { + return await this.workspaceQueryRunnerService.deleteOne(args, { authContext: internalContext.authContext, objectMetadataItem: internalContext.objectMetadataItem, info, diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/find-duplicates-resolver.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/find-duplicates-resolver.factory.ts index bba60e7211..0a1494efb6 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/find-duplicates-resolver.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/find-duplicates-resolver.factory.ts @@ -25,9 +25,9 @@ export class FindDuplicatesResolverFactory ): Resolver { const internalContext = context; - return (_source, args, context, info) => { + return async (_source, args, context, info) => { try { - return this.workspaceQueryRunnerService.findDuplicates(args, { + return await this.workspaceQueryRunnerService.findDuplicates(args, { authContext: internalContext.authContext, objectMetadataItem: internalContext.objectMetadataItem, info, diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/find-many-resolver.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/find-many-resolver.factory.ts index 24ee24f745..76391b27ed 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/find-many-resolver.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/find-many-resolver.factory.ts @@ -25,9 +25,9 @@ export class FindManyResolverFactory ): Resolver { const internalContext = context; - return (_source, args, context, info) => { + return async (_source, args, context, info) => { try { - return this.workspaceQueryRunnerService.findMany(args, { + return await this.workspaceQueryRunnerService.findMany(args, { authContext: internalContext.authContext, objectMetadataItem: internalContext.objectMetadataItem, info, diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/find-one-resolver.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/find-one-resolver.factory.ts index 47a51e4ad8..d6a6795937 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/find-one-resolver.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/find-one-resolver.factory.ts @@ -25,9 +25,9 @@ export class FindOneResolverFactory ): Resolver { const internalContext = context; - return (_source, args, context, info) => { + return async (_source, args, context, info) => { try { - return this.workspaceQueryRunnerService.findOne(args, { + return await this.workspaceQueryRunnerService.findOne(args, { authContext: internalContext.authContext, objectMetadataItem: internalContext.objectMetadataItem, info, diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/update-many-resolver.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/update-many-resolver.factory.ts index 888764ec24..c2328d12ba 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/update-many-resolver.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/update-many-resolver.factory.ts @@ -25,9 +25,9 @@ export class UpdateManyResolverFactory ): Resolver { const internalContext = context; - return (_source, args, context, info) => { + return async (_source, args, context, info) => { try { - return this.workspaceQueryRunnerService.updateMany(args, { + return await this.workspaceQueryRunnerService.updateMany(args, { authContext: internalContext.authContext, objectMetadataItem: internalContext.objectMetadataItem, info, diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/update-one-resolver.factory.ts b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/update-one-resolver.factory.ts index 2e802c3ff1..c7a7dc6bac 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/update-one-resolver.factory.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-resolver-builder/factories/update-one-resolver.factory.ts @@ -25,9 +25,9 @@ export class UpdateOneResolverFactory ): Resolver { const internalContext = context; - return (_source, args, context, info) => { + return async (_source, args, context, info) => { try { - return this.workspaceQueryRunnerService.updateOne(args, { + return await this.workspaceQueryRunnerService.updateOne(args, { authContext: internalContext.authContext, objectMetadataItem: internalContext.objectMetadataItem, info,