diff --git a/front/src/modules/metadata/hooks/useFindOneObjectMetadataItem.ts b/front/src/modules/metadata/hooks/useFindOneObjectMetadataItem.ts index 961bc384b..c43980995 100644 --- a/front/src/modules/metadata/hooks/useFindOneObjectMetadataItem.ts +++ b/front/src/modules/metadata/hooks/useFindOneObjectMetadataItem.ts @@ -102,7 +102,6 @@ export const useFindOneObjectMetadataItem = ({ } `; - // TODO: implement backend delete const deleteOneMutation = foundObjectMetadataItem ? generateDeleteOneObjectMutation({ objectMetadataItem: foundObjectMetadataItem, diff --git a/front/src/modules/metadata/utils/generateDeleteOneObjectMutation.ts b/front/src/modules/metadata/utils/generateDeleteOneObjectMutation.ts index eaaedb013..22fe348b8 100644 --- a/front/src/modules/metadata/utils/generateDeleteOneObjectMutation.ts +++ b/front/src/modules/metadata/utils/generateDeleteOneObjectMutation.ts @@ -4,7 +4,6 @@ import { capitalize } from '~/utils/string/capitalize'; import { ObjectMetadataItem } from '../types/ObjectMetadataItem'; -// TODO: implement export const generateDeleteOneObjectMutation = ({ objectMetadataItem, }: { @@ -13,8 +12,8 @@ export const generateDeleteOneObjectMutation = ({ const capitalizedObjectName = capitalize(objectMetadataItem.nameSingular); return gql` - mutation DeleteOne${capitalizedObjectName}($input: ${capitalizedObjectName}DeleteInput!) { - createOne${capitalizedObjectName}(data: $input) { + mutation DeleteOne${capitalizedObjectName}($idToDelete: ID!) { + deleteOne${capitalizedObjectName}(id: $idToDelete) { id } } diff --git a/front/src/modules/views/hooks/internal/useViewFilters.ts b/front/src/modules/views/hooks/internal/useViewFilters.ts index 9285bf581..d4e51b947 100644 --- a/front/src/modules/views/hooks/internal/useViewFilters.ts +++ b/front/src/modules/views/hooks/internal/useViewFilters.ts @@ -14,10 +14,14 @@ import { ViewFilter } from '@/views/types/ViewFilter'; import { useViewSetStates } from '../useViewSetStates'; export const useViewFilters = (viewScopeId: string) => { - const { updateOneMutation, createOneMutation, findManyQuery } = - useFindOneObjectMetadataItem({ - objectNameSingular: 'viewFilterV2', - }); + const { + updateOneMutation, + createOneMutation, + deleteOneMutation, + findManyQuery, + } = useFindOneObjectMetadataItem({ + objectNameSingular: 'viewFilterV2', + }); const apolloClient = useApolloClient(); const { setCurrentViewFilters } = useViewSetStates(viewScopeId); @@ -76,7 +80,16 @@ export const useViewFilters = (viewScopeId: string) => { const deleteViewFilters = (viewFilterIdsToDelete: string[]) => { if (!viewFilterIdsToDelete.length) return; - // Todo + return Promise.all( + viewFilterIdsToDelete.map((viewFilterId) => + apolloClient.mutate({ + mutation: deleteOneMutation, + variables: { + idToDelete: viewFilterId, + }, + }), + ), + ); }; const currentViewFilters = snapshot @@ -121,7 +134,11 @@ export const useViewFilters = (viewScopeId: string) => { const filterKeysToDelete = Object.keys(savedViewFiltersByKey).filter( (previousFilterKey) => !filterKeys.includes(previousFilterKey), ); - await deleteViewFilters(filterKeysToDelete); + const filterIdsToDelete = filterKeysToDelete.map( + (filterKeyToDelete) => + savedViewFiltersByKey[filterKeyToDelete].id ?? '', + ); + await deleteViewFilters(filterIdsToDelete); set( savedViewFiltersScopedFamilyState({ scopeId: viewScopeId, @@ -133,6 +150,7 @@ export const useViewFilters = (viewScopeId: string) => { [ apolloClient, createOneMutation, + deleteOneMutation, findManyQuery, updateOneMutation, viewScopeId,