Add metadata input filtering before create/update (#1495)

* Add metadata input filtering before create/update

* Small refactor

* remove unnecessary return
This commit is contained in:
Wojciech Mista 2021-10-19 15:23:02 +02:00 committed by GitHub
parent 13c63283a9
commit fe3de902b1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 4 deletions

View file

@ -0,0 +1,4 @@
import { MetadataInput } from "@saleor/types/globalTypes";
export const filterMetadataArray = (metadataInputs: MetadataInput[]) =>
metadataInputs.filter(input => !!input.key);

View file

@ -9,6 +9,7 @@ import {
UpdatePrivateMetadata,
UpdatePrivateMetadataVariables
} from "../metadata/types/UpdatePrivateMetadata";
import { filterMetadataArray } from "./filterMetadataArray";
function createMetadataCreateHandler<T extends MetadataFormData>(
create: (data: T) => Promise<string>,
@ -29,7 +30,7 @@ function createMetadataCreateHandler<T extends MetadataFormData>(
const updateMetaResult = await setMetadata({
variables: {
id,
input: data.metadata,
input: filterMetadataArray(data.metadata),
keysToDelete: []
}
});
@ -47,7 +48,7 @@ function createMetadataCreateHandler<T extends MetadataFormData>(
const updatePrivateMetaResult = await setPrivateMetadata({
variables: {
id,
input: data.privateMetadata,
input: filterMetadataArray(data.privateMetadata),
keysToDelete: []
}
});

View file

@ -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<TData extends MetadataFormData, TError>(
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<TData extends MetadataFormData, TError>(
const updatePrivateMetaResult = await updatePrivateMetadata({
id: initial.id,
input: data.privateMetadata,
input: filterMetadataArray(data.privateMetadata),
keysToDelete: keyDiff.removed
});