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 6b40eb2db97..46748819245 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 5ae1a939e6b..24fdfe0239f 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 ba415d92cc1..a8d36f3e490 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 f9bde1bf37c..93f249cdd6a 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 bba60e72115..0a1494efb66 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 24ee24f745f..76391b27ed2 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 47a51e4ad8e..d6a67959378 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 888764ec246..c2328d12ba0 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 2e802c3ff13..c7a7dc6bacd 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,