From 2da3d83a417b9fc0389d26ba6c893daa7c7caf3d Mon Sep 17 00:00:00 2001 From: Marie <51697796+ijreilly@users.noreply.github.com> Date: Thu, 26 Dec 2024 11:43:05 +0100 Subject: [PATCH] Fix creation of a new view duplicating existing filters (#9240) Fixes #9239 --- .../views/hooks/internal/usePersistViewFilterRecords.ts | 3 ++- ...pace-query-runner-graphql-api-exception-handler.util.ts | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/twenty-front/src/modules/views/hooks/internal/usePersistViewFilterRecords.ts b/packages/twenty-front/src/modules/views/hooks/internal/usePersistViewFilterRecords.ts index 5e86f4940..cfd829785 100644 --- a/packages/twenty-front/src/modules/views/hooks/internal/usePersistViewFilterRecords.ts +++ b/packages/twenty-front/src/modules/views/hooks/internal/usePersistViewFilterRecords.ts @@ -13,6 +13,7 @@ import { useDestroyOneRecordMutation } from '@/object-record/hooks/useDestroyOne import { useUpdateOneRecordMutation } from '@/object-record/hooks/useUpdateOneRecordMutation'; import { GraphQLView } from '@/views/types/GraphQLView'; import { ViewFilter } from '@/views/types/ViewFilter'; +import { v4 } from 'uuid'; export const usePersistViewFilterRecords = () => { const { objectMetadataItem } = useObjectMetadataItem({ @@ -49,7 +50,7 @@ export const usePersistViewFilterRecords = () => { mutation: createOneRecordMutation, variables: { input: { - id: viewFilter.id, + id: v4(), fieldMetadataId: viewFilter.fieldMetadataId, viewId: view.id, value: viewFilter.value, diff --git a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/workspace-query-runner-graphql-api-exception-handler.util.ts b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/workspace-query-runner-graphql-api-exception-handler.util.ts index d98ee6bd6..4a201a82c 100644 --- a/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/workspace-query-runner-graphql-api-exception-handler.util.ts +++ b/packages/twenty-server/src/engine/api/graphql/workspace-query-runner/utils/workspace-query-runner-graphql-api-exception-handler.util.ts @@ -17,6 +17,7 @@ import { TimeoutError, UserInputError, } from 'src/engine/core-modules/graphql/utils/graphql-errors.util'; +import { isDefined } from 'src/utils/is-defined'; export const workspaceQueryRunnerGraphqlApiExceptionHandler = ( error: Error, @@ -49,7 +50,11 @@ export const workspaceQueryRunnerGraphqlApiExceptionHandler = ( return fieldMetadata?.label; }); - const columnNames = affectedColumns?.join(', '); + if (!isDefined(affectedColumns)) { + throw new UserInputError(`A duplicate entry was detected`); + } + + const columnNames = affectedColumns.join(', '); if (affectedColumns?.length === 1) { throw new UserInputError(