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:
parent
13c63283a9
commit
fe3de902b1
3 changed files with 11 additions and 4 deletions
4
src/utils/handlers/filterMetadataArray.ts
Normal file
4
src/utils/handlers/filterMetadataArray.ts
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
import { MetadataInput } from "@saleor/types/globalTypes";
|
||||||
|
|
||||||
|
export const filterMetadataArray = (metadataInputs: MetadataInput[]) =>
|
||||||
|
metadataInputs.filter(input => !!input.key);
|
|
@ -9,6 +9,7 @@ import {
|
||||||
UpdatePrivateMetadata,
|
UpdatePrivateMetadata,
|
||||||
UpdatePrivateMetadataVariables
|
UpdatePrivateMetadataVariables
|
||||||
} from "../metadata/types/UpdatePrivateMetadata";
|
} from "../metadata/types/UpdatePrivateMetadata";
|
||||||
|
import { filterMetadataArray } from "./filterMetadataArray";
|
||||||
|
|
||||||
function createMetadataCreateHandler<T extends MetadataFormData>(
|
function createMetadataCreateHandler<T extends MetadataFormData>(
|
||||||
create: (data: T) => Promise<string>,
|
create: (data: T) => Promise<string>,
|
||||||
|
@ -29,7 +30,7 @@ function createMetadataCreateHandler<T extends MetadataFormData>(
|
||||||
const updateMetaResult = await setMetadata({
|
const updateMetaResult = await setMetadata({
|
||||||
variables: {
|
variables: {
|
||||||
id,
|
id,
|
||||||
input: data.metadata,
|
input: filterMetadataArray(data.metadata),
|
||||||
keysToDelete: []
|
keysToDelete: []
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -47,7 +48,7 @@ function createMetadataCreateHandler<T extends MetadataFormData>(
|
||||||
const updatePrivateMetaResult = await setPrivateMetadata({
|
const updatePrivateMetaResult = await setPrivateMetadata({
|
||||||
variables: {
|
variables: {
|
||||||
id,
|
id,
|
||||||
input: data.privateMetadata,
|
input: filterMetadataArray(data.privateMetadata),
|
||||||
keysToDelete: []
|
keysToDelete: []
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -12,6 +12,7 @@ import {
|
||||||
UpdatePrivateMetadata,
|
UpdatePrivateMetadata,
|
||||||
UpdatePrivateMetadataVariables
|
UpdatePrivateMetadataVariables
|
||||||
} from "../metadata/types/UpdatePrivateMetadata";
|
} from "../metadata/types/UpdatePrivateMetadata";
|
||||||
|
import { filterMetadataArray } from "./filterMetadataArray";
|
||||||
|
|
||||||
interface ObjectWithMetadata {
|
interface ObjectWithMetadata {
|
||||||
id: string;
|
id: string;
|
||||||
|
@ -47,9 +48,10 @@ function createMetadataUpdateHandler<TData extends MetadataFormData, TError>(
|
||||||
|
|
||||||
const updateMetaResult = await updateMetadata({
|
const updateMetaResult = await updateMetadata({
|
||||||
id: initial.id,
|
id: initial.id,
|
||||||
input: data.metadata,
|
input: filterMetadataArray(data.metadata),
|
||||||
keysToDelete: keyDiff.removed
|
keysToDelete: keyDiff.removed
|
||||||
});
|
});
|
||||||
|
|
||||||
const updateMetaErrors = [
|
const updateMetaErrors = [
|
||||||
...(updateMetaResult.data.deleteMetadata.errors || []),
|
...(updateMetaResult.data.deleteMetadata.errors || []),
|
||||||
...(updateMetaResult.data.updateMetadata.errors || [])
|
...(updateMetaResult.data.updateMetadata.errors || [])
|
||||||
|
@ -68,7 +70,7 @@ function createMetadataUpdateHandler<TData extends MetadataFormData, TError>(
|
||||||
|
|
||||||
const updatePrivateMetaResult = await updatePrivateMetadata({
|
const updatePrivateMetaResult = await updatePrivateMetadata({
|
||||||
id: initial.id,
|
id: initial.id,
|
||||||
input: data.privateMetadata,
|
input: filterMetadataArray(data.privateMetadata),
|
||||||
keysToDelete: keyDiff.removed
|
keysToDelete: keyDiff.removed
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue