@foxtware/mineral 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.creds.yml.sample +5 -0
- package/.gcloudignore +17 -0
- package/.hosting.yml.sample +23 -0
- package/README.md +3 -1
- package/_build_scripts/publish.js +105 -0
- package/_deploy_scripts/deployFromHostingYml.js +319 -0
- package/_deploy_scripts/execCommand.js +38 -0
- package/_deploy_scripts/generateHosted.js +44 -0
- package/_deploy_scripts/setEnvVarsGcloud.js +51 -0
- package/api/logiwa/logiwa.constants.js +8 -0
- package/api/logiwa/logiwa.utils.js +53 -0
- package/api/logiwa/logiwaAuthGet.js +86 -0
- package/api/logiwa/logiwaInventoriesGet.js +67 -0
- package/api/logiwa/logiwaOrderGet.js +54 -0
- package/api/logiwa/logiwaOrdersGet.js +92 -0
- package/api/logiwa/logiwaProductGet.js +54 -0
- package/api/logiwa/logiwaProductsGet.js +80 -0
- package/api/logiwa/logiwaReportGetAvailableToPromise.js +179 -0
- package/api/logiwa/logiwaReportGetInventoryCalculation.js +62 -0
- package/api/logiwa/logiwaReportGetInventorySnapshot.js +66 -0
- package/api/logiwa/logiwaReportGetTotalInventory.js +72 -0
- package/api/logiwa/logiwaWebhookStatusGet.js +54 -0
- package/api/logiwa/logiwaWebhookSubscribe.js +64 -0
- package/api/logiwa/logiwaWebhookUnsubscribe.js +54 -0
- package/api/logiwa/logiwaWebhooksGet.js +48 -0
- package/api/shopify/_example.get.js +46 -0
- package/api/shopify/shopifyAbandonedCheckoutsGet.js +46 -0
- package/api/shopify/shopifyArticlesGet.js +46 -0
- package/api/shopify/shopifyBlogsGet.js +46 -0
- package/api/shopify/shopifyBulkOperationsGet.js +46 -0
- package/api/shopify/shopifyCatalogsGet.js +46 -0
- package/api/shopify/shopifyChannelsGet.js +46 -0
- package/api/shopify/shopifyCheckoutAndAccountsConfigurationsGet.js +46 -0
- package/api/shopify/shopifyCollectionsGet.js +46 -0
- package/api/shopify/shopifyCustomersGet.js +2 -0
- package/api/shopify/shopifyDeliveryCustomizationsGet.js +46 -0
- package/api/shopify/shopifyDeliveryProfilesGet.js +46 -0
- package/api/shopify/shopifyDiscountNodesGet.js +46 -0
- package/api/shopify/shopifyDisputesGet.js +46 -0
- package/api/shopify/shopifyDraftOrdersGet.js +46 -0
- package/api/shopify/shopifyEventsGet.js +46 -0
- package/api/shopify/shopifyFilesGet.js +46 -0
- package/api/shopify/shopifyFulfillmentOrdersGet.js +46 -0
- package/api/shopify/shopifyGiftCardsGet.js +46 -0
- package/api/shopify/shopifyInventoryItemsGet.js +46 -0
- package/api/shopify/shopifyLocationsGet.js +46 -0
- package/api/shopify/shopifyMarketingEventsGet.js +46 -0
- package/api/shopify/shopifyMarketsGet.js +46 -0
- package/api/shopify/shopifyMenusGet.js +46 -0
- package/api/shopify/shopifyMetafieldDefinitionsGet.js +50 -0
- package/api/shopify/shopifyMetaobjectDefinitionsGet.js +46 -0
- package/api/shopify/shopifyMetaobjectsGet.js +50 -0
- package/api/shopify/shopifyPagesGet.js +46 -0
- package/api/shopify/shopifyPaymentCustomizationsGet.js +46 -0
- package/api/shopify/shopifyProductFeedsGet.js +46 -0
- package/api/shopify/shopifyProductVariantsGet.js +46 -0
- package/api/shopify/shopifyProductsGet.js +46 -0
- package/api/shopify/shopifyPublicationsGet.js +46 -0
- package/api/shopify/shopifySegmentsGet.js +46 -0
- package/api/shopify/shopifyUrlRedirectsGet.js +46 -0
- package/api/shopify/shopifyWebhookSubscriptionsGet.js +46 -0
- package/api/utils.js +4 -3
- package/api/workspace.js +43 -0
- package/cli.js +42 -0
- package/hosting.utils.js +232 -0
- package/package.json +5 -3
- package/server.js +157 -107
- package/server.utils.js +40 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/markets
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
const shopifyMarketsGet = async (
|
|
12
|
+
credsPayload,
|
|
13
|
+
{
|
|
14
|
+
...getterOptions // e.g. limit
|
|
15
|
+
} = {},
|
|
16
|
+
) => {
|
|
17
|
+
|
|
18
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
19
|
+
credsPayload,
|
|
20
|
+
});
|
|
21
|
+
if (rejectResponse) {
|
|
22
|
+
return rejectResponse;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return await shopifyGet(credsPayload, 'market', { ...getterOptions });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const funcApiConfig = {
|
|
29
|
+
argsWarden,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
shopifyMarketsGet,
|
|
34
|
+
funcApiConfig,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
curl -X POST "http://localhost:8000/shopifyMarketsGet" \
|
|
39
|
+
-H "Content-Type: application/json" \
|
|
40
|
+
-d '{
|
|
41
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
42
|
+
"options": {
|
|
43
|
+
"limit": 10
|
|
44
|
+
}
|
|
45
|
+
}'
|
|
46
|
+
*/
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/menus
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
const shopifyMenusGet = async (
|
|
12
|
+
credsPayload,
|
|
13
|
+
{
|
|
14
|
+
...getterOptions // e.g. limit
|
|
15
|
+
} = {},
|
|
16
|
+
) => {
|
|
17
|
+
|
|
18
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
19
|
+
credsPayload,
|
|
20
|
+
});
|
|
21
|
+
if (rejectResponse) {
|
|
22
|
+
return rejectResponse;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return await shopifyGet(credsPayload, 'menu', { ...getterOptions });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const funcApiConfig = {
|
|
29
|
+
argsWarden,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
shopifyMenusGet,
|
|
34
|
+
funcApiConfig,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
curl -X POST "http://localhost:8000/shopifyMenusGet" \
|
|
39
|
+
-H "Content-Type: application/json" \
|
|
40
|
+
-d '{
|
|
41
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
42
|
+
"options": {
|
|
43
|
+
"limit": 10
|
|
44
|
+
}
|
|
45
|
+
}'
|
|
46
|
+
*/
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/metafieldDefinitions
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
['ownerType'],
|
|
10
|
+
]);
|
|
11
|
+
|
|
12
|
+
const shopifyMetafieldDefinitionsGet = async (
|
|
13
|
+
credsPayload,
|
|
14
|
+
ownerType,
|
|
15
|
+
{
|
|
16
|
+
...getterOptions // e.g. limit
|
|
17
|
+
} = {},
|
|
18
|
+
) => {
|
|
19
|
+
|
|
20
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
21
|
+
credsPayload,
|
|
22
|
+
ownerType,
|
|
23
|
+
});
|
|
24
|
+
if (rejectResponse) {
|
|
25
|
+
return rejectResponse;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return await shopifyGet(credsPayload, 'metafieldDefinition', { ownerType, ...getterOptions });
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const funcApiConfig = {
|
|
32
|
+
argsWarden,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
module.exports = {
|
|
36
|
+
shopifyMetafieldDefinitionsGet,
|
|
37
|
+
funcApiConfig,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/*
|
|
41
|
+
curl -X POST "http://localhost:8000/shopifyMetafieldDefinitionsGet" \
|
|
42
|
+
-H "Content-Type: application/json" \
|
|
43
|
+
-d '{
|
|
44
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
45
|
+
"ownerType": "PRODUCT",
|
|
46
|
+
"options": {
|
|
47
|
+
"limit": 10
|
|
48
|
+
}
|
|
49
|
+
}'
|
|
50
|
+
*/
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/metaobjectDefinitions
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
const shopifyMetaobjectDefinitionsGet = async (
|
|
12
|
+
credsPayload,
|
|
13
|
+
{
|
|
14
|
+
...getterOptions // e.g. limit
|
|
15
|
+
} = {},
|
|
16
|
+
) => {
|
|
17
|
+
|
|
18
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
19
|
+
credsPayload,
|
|
20
|
+
});
|
|
21
|
+
if (rejectResponse) {
|
|
22
|
+
return rejectResponse;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return await shopifyGet(credsPayload, 'metaobjectDefinition', { ...getterOptions });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const funcApiConfig = {
|
|
29
|
+
argsWarden,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
shopifyMetaobjectDefinitionsGet,
|
|
34
|
+
funcApiConfig,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
curl -X POST "http://localhost:8000/shopifyMetaobjectDefinitionsGet" \
|
|
39
|
+
-H "Content-Type: application/json" \
|
|
40
|
+
-d '{
|
|
41
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
42
|
+
"options": {
|
|
43
|
+
"limit": 10
|
|
44
|
+
}
|
|
45
|
+
}'
|
|
46
|
+
*/
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/metaobjects
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
['type'],
|
|
10
|
+
]);
|
|
11
|
+
|
|
12
|
+
const shopifyMetaobjectsGet = async (
|
|
13
|
+
credsPayload,
|
|
14
|
+
type,
|
|
15
|
+
{
|
|
16
|
+
...getterOptions // e.g. limit
|
|
17
|
+
} = {},
|
|
18
|
+
) => {
|
|
19
|
+
|
|
20
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
21
|
+
credsPayload,
|
|
22
|
+
type,
|
|
23
|
+
});
|
|
24
|
+
if (rejectResponse) {
|
|
25
|
+
return rejectResponse;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return await shopifyGet(credsPayload, 'metaobject', { type, ...getterOptions });
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const funcApiConfig = {
|
|
32
|
+
argsWarden,
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
module.exports = {
|
|
36
|
+
shopifyMetaobjectsGet,
|
|
37
|
+
funcApiConfig,
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/*
|
|
41
|
+
curl -X POST "http://localhost:8000/shopifyMetaobjectsGet" \
|
|
42
|
+
-H "Content-Type: application/json" \
|
|
43
|
+
-d '{
|
|
44
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
45
|
+
"type": "image_hotspot",
|
|
46
|
+
"options": {
|
|
47
|
+
"limit": 10
|
|
48
|
+
}
|
|
49
|
+
}'
|
|
50
|
+
*/
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/pages
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
const shopifyPagesGet = async (
|
|
12
|
+
credsPayload,
|
|
13
|
+
{
|
|
14
|
+
...getterOptions // e.g. limit
|
|
15
|
+
} = {},
|
|
16
|
+
) => {
|
|
17
|
+
|
|
18
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
19
|
+
credsPayload,
|
|
20
|
+
});
|
|
21
|
+
if (rejectResponse) {
|
|
22
|
+
return rejectResponse;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return await shopifyGet(credsPayload, 'page', { ...getterOptions });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const funcApiConfig = {
|
|
29
|
+
argsWarden,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
shopifyPagesGet,
|
|
34
|
+
funcApiConfig,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
curl -X POST "http://localhost:8000/shopifyPagesGet" \
|
|
39
|
+
-H "Content-Type: application/json" \
|
|
40
|
+
-d '{
|
|
41
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
42
|
+
"options": {
|
|
43
|
+
"limit": 10
|
|
44
|
+
}
|
|
45
|
+
}'
|
|
46
|
+
*/
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/paymentCustomizations
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
const shopifyPaymentCustomizationsGet = async (
|
|
12
|
+
credsPayload,
|
|
13
|
+
{
|
|
14
|
+
...getterOptions // e.g. limit
|
|
15
|
+
} = {},
|
|
16
|
+
) => {
|
|
17
|
+
|
|
18
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
19
|
+
credsPayload,
|
|
20
|
+
});
|
|
21
|
+
if (rejectResponse) {
|
|
22
|
+
return rejectResponse;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return await shopifyGet(credsPayload, 'paymentCustomization', { ...getterOptions });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const funcApiConfig = {
|
|
29
|
+
argsWarden,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
shopifyPaymentCustomizationsGet,
|
|
34
|
+
funcApiConfig,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
curl -X POST "http://localhost:8000/shopifyPaymentCustomizationsGet" \
|
|
39
|
+
-H "Content-Type: application/json" \
|
|
40
|
+
-d '{
|
|
41
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
42
|
+
"options": {
|
|
43
|
+
"limit": 10
|
|
44
|
+
}
|
|
45
|
+
}'
|
|
46
|
+
*/
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/productFeeds
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
const shopifyProductFeedsGet = async (
|
|
12
|
+
credsPayload,
|
|
13
|
+
{
|
|
14
|
+
...getterOptions // e.g. limit
|
|
15
|
+
} = {},
|
|
16
|
+
) => {
|
|
17
|
+
|
|
18
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
19
|
+
credsPayload,
|
|
20
|
+
});
|
|
21
|
+
if (rejectResponse) {
|
|
22
|
+
return rejectResponse;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return await shopifyGet(credsPayload, 'productFeed', { ...getterOptions });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const funcApiConfig = {
|
|
29
|
+
argsWarden,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
shopifyProductFeedsGet,
|
|
34
|
+
funcApiConfig,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
curl -X POST "http://localhost:8000/shopifyProductFeedsGet" \
|
|
39
|
+
-H "Content-Type: application/json" \
|
|
40
|
+
-d '{
|
|
41
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
42
|
+
"options": {
|
|
43
|
+
"limit": 10
|
|
44
|
+
}
|
|
45
|
+
}'
|
|
46
|
+
*/
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/productVariants
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
const shopifyProductVariantsGet = async (
|
|
12
|
+
credsPayload,
|
|
13
|
+
{
|
|
14
|
+
...getterOptions // e.g. limit
|
|
15
|
+
} = {},
|
|
16
|
+
) => {
|
|
17
|
+
|
|
18
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
19
|
+
credsPayload,
|
|
20
|
+
});
|
|
21
|
+
if (rejectResponse) {
|
|
22
|
+
return rejectResponse;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return await shopifyGet(credsPayload, 'productVariant', { ...getterOptions });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const funcApiConfig = {
|
|
29
|
+
argsWarden,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
shopifyProductVariantsGet,
|
|
34
|
+
funcApiConfig,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
curl -X POST "http://localhost:8000/shopifyProductVariantsGet" \
|
|
39
|
+
-H "Content-Type: application/json" \
|
|
40
|
+
-d '{
|
|
41
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
42
|
+
"options": {
|
|
43
|
+
"limit": 10
|
|
44
|
+
}
|
|
45
|
+
}'
|
|
46
|
+
*/
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/products
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
const shopifyProductsGet = async (
|
|
12
|
+
credsPayload,
|
|
13
|
+
{
|
|
14
|
+
...getterOptions // e.g. limit
|
|
15
|
+
} = {},
|
|
16
|
+
) => {
|
|
17
|
+
|
|
18
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
19
|
+
credsPayload,
|
|
20
|
+
});
|
|
21
|
+
if (rejectResponse) {
|
|
22
|
+
return rejectResponse;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return await shopifyGet(credsPayload, 'product', { ...getterOptions });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const funcApiConfig = {
|
|
29
|
+
argsWarden,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
shopifyProductsGet,
|
|
34
|
+
funcApiConfig,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
curl -X POST "http://localhost:8000/shopifyProductsGet" \
|
|
39
|
+
-H "Content-Type: application/json" \
|
|
40
|
+
-d '{
|
|
41
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
42
|
+
"options": {
|
|
43
|
+
"limit": 10
|
|
44
|
+
}
|
|
45
|
+
}'
|
|
46
|
+
*/
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/publications
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
const shopifyPublicationsGet = async (
|
|
12
|
+
credsPayload,
|
|
13
|
+
{
|
|
14
|
+
...getterOptions // e.g. limit
|
|
15
|
+
} = {},
|
|
16
|
+
) => {
|
|
17
|
+
|
|
18
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
19
|
+
credsPayload,
|
|
20
|
+
});
|
|
21
|
+
if (rejectResponse) {
|
|
22
|
+
return rejectResponse;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return await shopifyGet(credsPayload, 'publication', { ...getterOptions });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const funcApiConfig = {
|
|
29
|
+
argsWarden,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
shopifyPublicationsGet,
|
|
34
|
+
funcApiConfig,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
curl -X POST "http://localhost:8000/shopifyPublicationsGet" \
|
|
39
|
+
-H "Content-Type: application/json" \
|
|
40
|
+
-d '{
|
|
41
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
42
|
+
"options": {
|
|
43
|
+
"limit": 10
|
|
44
|
+
}
|
|
45
|
+
}'
|
|
46
|
+
*/
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/segments
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
const shopifySegmentsGet = async (
|
|
12
|
+
credsPayload,
|
|
13
|
+
{
|
|
14
|
+
...getterOptions // e.g. limit
|
|
15
|
+
} = {},
|
|
16
|
+
) => {
|
|
17
|
+
|
|
18
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
19
|
+
credsPayload,
|
|
20
|
+
});
|
|
21
|
+
if (rejectResponse) {
|
|
22
|
+
return rejectResponse;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return await shopifyGet(credsPayload, 'segment', { ...getterOptions });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const funcApiConfig = {
|
|
29
|
+
argsWarden,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
shopifySegmentsGet,
|
|
34
|
+
funcApiConfig,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
curl -X POST "http://localhost:8000/shopifySegmentsGet" \
|
|
39
|
+
-H "Content-Type: application/json" \
|
|
40
|
+
-d '{
|
|
41
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
42
|
+
"options": {
|
|
43
|
+
"limit": 10
|
|
44
|
+
}
|
|
45
|
+
}'
|
|
46
|
+
*/
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/urlRedirects
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
const shopifyUrlRedirectsGet = async (
|
|
12
|
+
credsPayload,
|
|
13
|
+
{
|
|
14
|
+
...getterOptions // e.g. limit
|
|
15
|
+
} = {},
|
|
16
|
+
) => {
|
|
17
|
+
|
|
18
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
19
|
+
credsPayload,
|
|
20
|
+
});
|
|
21
|
+
if (rejectResponse) {
|
|
22
|
+
return rejectResponse;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return await shopifyGet(credsPayload, 'urlRedirect', { ...getterOptions });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const funcApiConfig = {
|
|
29
|
+
argsWarden,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
shopifyUrlRedirectsGet,
|
|
34
|
+
funcApiConfig,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
curl -X POST "http://localhost:8000/shopifyUrlRedirectsGet" \
|
|
39
|
+
-H "Content-Type: application/json" \
|
|
40
|
+
-d '{
|
|
41
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
42
|
+
"options": {
|
|
43
|
+
"limit": 10
|
|
44
|
+
}
|
|
45
|
+
}'
|
|
46
|
+
*/
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// https://shopify.dev/docs/api/admin-graphql/latest/queries/webhookSubscriptions
|
|
2
|
+
|
|
3
|
+
const { ArgsWarden } = require('../utils');
|
|
4
|
+
const { credsValidator } = require('../validators');
|
|
5
|
+
const { shopifyGet } = require('./shopifyGet');
|
|
6
|
+
|
|
7
|
+
const argsWarden = new ArgsWarden([
|
|
8
|
+
['credsPayload', credsValidator],
|
|
9
|
+
]);
|
|
10
|
+
|
|
11
|
+
const shopifyWebhookSubscriptionsGet = async (
|
|
12
|
+
credsPayload,
|
|
13
|
+
{
|
|
14
|
+
...getterOptions // e.g. limit
|
|
15
|
+
} = {},
|
|
16
|
+
) => {
|
|
17
|
+
|
|
18
|
+
const rejectResponse = await argsWarden.responseIfRejectingArgs({
|
|
19
|
+
credsPayload,
|
|
20
|
+
});
|
|
21
|
+
if (rejectResponse) {
|
|
22
|
+
return rejectResponse;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return await shopifyGet(credsPayload, 'webhookSubscription', { ...getterOptions });
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const funcApiConfig = {
|
|
29
|
+
argsWarden,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
module.exports = {
|
|
33
|
+
shopifyWebhookSubscriptionsGet,
|
|
34
|
+
funcApiConfig,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/*
|
|
38
|
+
curl -X POST "http://localhost:8000/shopifyWebhookSubscriptionsGet" \
|
|
39
|
+
-H "Content-Type: application/json" \
|
|
40
|
+
-d '{
|
|
41
|
+
"credsPayload": { "credsPath": "shopify.au" },
|
|
42
|
+
"options": {
|
|
43
|
+
"limit": 10
|
|
44
|
+
}
|
|
45
|
+
}'
|
|
46
|
+
*/
|
package/api/utils.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require('dotenv').config();
|
|
2
|
-
|
|
3
1
|
const xml2js = require('xml2js');
|
|
4
2
|
const readline = require('readline');
|
|
5
3
|
const fs = require('fs').promises;
|
|
@@ -7,6 +5,7 @@ const yaml = require('yaml');
|
|
|
7
5
|
const { EventEmitter } = require('events');
|
|
8
6
|
|
|
9
7
|
const { HOSTED } = require('./constants');
|
|
8
|
+
const { getWorkspace } = require('./workspace');
|
|
10
9
|
|
|
11
10
|
const wait = (ms) => new Promise((resolve, reject) => setTimeout(resolve, ms));
|
|
12
11
|
|
|
@@ -73,7 +72,7 @@ const credsFromPayload = async (credsPayload) => {
|
|
|
73
72
|
throw new Error(`Malformed CREDS environment variable: ${ err }`);
|
|
74
73
|
}
|
|
75
74
|
} else {
|
|
76
|
-
const credsText = await fs.readFile(
|
|
75
|
+
const credsText = await fs.readFile(`${ getWorkspace() }/.creds.yml`, 'utf8');
|
|
77
76
|
credsYmlAsObject = yaml.parse(credsText);
|
|
78
77
|
}
|
|
79
78
|
|
|
@@ -414,6 +413,8 @@ class Chain {
|
|
|
414
413
|
}
|
|
415
414
|
}
|
|
416
415
|
|
|
416
|
+
// TODO: client wrapper enabling auth and retrying with different auth
|
|
417
|
+
|
|
417
418
|
class FetchClient {
|
|
418
419
|
constructor({
|
|
419
420
|
context, // necessary data for preparer and interpreters to refer to
|