diff --git a/src/utils/handlers/filterMetadataArray.ts b/src/utils/handlers/filterMetadataArray.ts new file mode 100644 index 000000000..a26b88253 --- /dev/null +++ b/src/utils/handlers/filterMetadataArray.ts @@ -0,0 +1,4 @@ +import { MetadataInput } from "@saleor/types/globalTypes"; + +export const filterMetadataArray = (metadataInputs: MetadataInput[]) => + metadataInputs.filter(input => !!input.key); diff --git a/src/utils/handlers/metadataCreateHandler.ts b/src/utils/handlers/metadataCreateHandler.ts index 2c3587f4d..d10abea4b 100644 --- a/src/utils/handlers/metadataCreateHandler.ts +++ b/src/utils/handlers/metadataCreateHandler.ts @@ -9,6 +9,7 @@ import { UpdatePrivateMetadata, UpdatePrivateMetadataVariables } from "../metadata/types/UpdatePrivateMetadata"; +import { filterMetadataArray } from "./filterMetadataArray"; function createMetadataCreateHandler( create: (data: T) => Promise, @@ -29,7 +30,7 @@ function createMetadataCreateHandler( const updateMetaResult = await setMetadata({ variables: { id, - input: data.metadata, + input: filterMetadataArray(data.metadata), keysToDelete: [] } }); @@ -47,7 +48,7 @@ function createMetadataCreateHandler( const updatePrivateMetaResult = await setPrivateMetadata({ variables: { id, - input: data.privateMetadata, + input: filterMetadataArray(data.privateMetadata), keysToDelete: [] } }); diff --git a/src/utils/handlers/metadataUpdateHandler.ts b/src/utils/handlers/metadataUpdateHandler.ts index 2fe5b15e7..925d0b8be 100644 --- a/src/utils/handlers/metadataUpdateHandler.ts +++ b/src/utils/handlers/metadataUpdateHandler.ts @@ -12,6 +12,7 @@ import { UpdatePrivateMetadata, UpdatePrivateMetadataVariables } from "../metadata/types/UpdatePrivateMetadata"; +import { filterMetadataArray } from "./filterMetadataArray"; interface ObjectWithMetadata { id: string; @@ -47,9 +48,10 @@ function createMetadataUpdateHandler( const updateMetaResult = await updateMetadata({ id: initial.id, - input: data.metadata, + input: filterMetadataArray(data.metadata), keysToDelete: keyDiff.removed }); + const updateMetaErrors = [ ...(updateMetaResult.data.deleteMetadata.errors || []), ...(updateMetaResult.data.updateMetadata.errors || []) @@ -68,7 +70,7 @@ function createMetadataUpdateHandler( const updatePrivateMetaResult = await updatePrivateMetadata({ id: initial.id, - input: data.privateMetadata, + input: filterMetadataArray(data.privateMetadata), keysToDelete: keyDiff.removed });