Skip to content

Commit 2a7ed71

Browse files
authored
Shopify & Shopify Developer App - make additionalProps optional in Update Metaobject action (#7385)
* bug fix & props optional * handle various field types * pnpm-lock.yaml
1 parent 5b4f0ea commit 2a7ed71

File tree

5 files changed

+36
-9
lines changed

5 files changed

+36
-9
lines changed

components/shopify/actions/update-metaobject/common.mjs

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,25 @@ export default {
3232
id: this.metaobject,
3333
});
3434
for (const field of fields) {
35+
const type = consts.METAFIELD_TYPES[field.type];
3536
props[field.key] = {
36-
type: consts.METAFIELD_TYPES[field.type],
37+
type,
3738
label: field.definition.name,
38-
default: field.value,
39+
optional: true,
3940
};
41+
if (field.value) {
42+
if (type === "integer") {
43+
props[field.key].default = parseInt(field.value);
44+
} else if (type === "boolean") {
45+
props[field.key].default = field.value === "true"
46+
? true
47+
: false;
48+
} else if (type === "object" || type === "string[]") {
49+
props[field.key].default = JSON.parse(field.value);
50+
} else {
51+
props[field.key].default = field.value;
52+
}
53+
}
4054
}
4155
return props;
4256
},
@@ -47,9 +61,14 @@ export default {
4761

4862
const newFields = [];
4963
for (const field of fields) {
64+
const fieldValue = this[field.key]
65+
? this[field.key]
66+
: field.value || "";
5067
newFields.push({
5168
key: field.key,
52-
value: this[field.key],
69+
value: typeof fieldValue === "string"
70+
? fieldValue
71+
: JSON.stringify(fieldValue),
5372
});
5473
}
5574

@@ -59,10 +78,18 @@ export default {
5978
$,
6079
});
6180

62-
if (response) {
63-
$.export("$summary", `Successfully updated metaobject with ID ${this.metaobject}`);
81+
let errorMessage;
82+
if (response?.errors?.length) {
83+
errorMessage = response.errors[0].message;
84+
}
85+
if (response?.data?.metaobjectUpdate?.userErrors?.length) {
86+
errorMessage = response.data.metaobjectUpdate.userErrors[0].message;
87+
}
88+
if (errorMessage) {
89+
throw new Error(`${errorMessage}`);
6490
}
6591

92+
$.export("$summary", `Successfully updated metaobject with ID ${this.metaobject}`);
6693
return response;
6794
},
6895
};

components/shopify/actions/update-metaobject/update-metaobject.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default {
88
key: "shopify-update-metaobject",
99
name: "Update Metaobject",
1010
description: "Updates a metaobject. [See the documentation](https://shopify.dev/docs/api/admin-graphql/2023-04/mutations/metaobjectUpdate)",
11-
version: "0.0.2",
11+
version: "0.0.3",
1212
type: "action",
1313
props: {
1414
shopify,

components/shopify/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@pipedream/shopify",
3-
"version": "0.5.4",
3+
"version": "0.5.5",
44
"description": "Pipedream Shopify Components",
55
"main": "shopify.app.mjs",
66
"keywords": [

components/shopify_developer_app/actions/update-metaobject/update-metaobject.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export default {
88
key: "shopify_developer_app-update-metaobject",
99
name: "Update Metaobject",
1010
description: "Updates a metaobject. [See the documentation](https://shopify.dev/docs/api/admin-graphql/2023-04/mutations/metaobjectUpdate)",
11-
version: "0.0.1",
11+
version: "0.0.2",
1212
type: "action",
1313
props: {
1414
shopify,

components/shopify_developer_app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@pipedream/shopify_developer_app",
3-
"version": "0.1.0",
3+
"version": "0.1.1",
44
"description": "Pipedream Shopify (Developer App) Components",
55
"main": "shopify_developer_app.app.mjs",
66
"keywords": [

0 commit comments

Comments
 (0)