@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.
Files changed (68) hide show
  1. package/.creds.yml.sample +5 -0
  2. package/.gcloudignore +17 -0
  3. package/.hosting.yml.sample +23 -0
  4. package/README.md +3 -1
  5. package/_build_scripts/publish.js +105 -0
  6. package/_deploy_scripts/deployFromHostingYml.js +319 -0
  7. package/_deploy_scripts/execCommand.js +38 -0
  8. package/_deploy_scripts/generateHosted.js +44 -0
  9. package/_deploy_scripts/setEnvVarsGcloud.js +51 -0
  10. package/api/logiwa/logiwa.constants.js +8 -0
  11. package/api/logiwa/logiwa.utils.js +53 -0
  12. package/api/logiwa/logiwaAuthGet.js +86 -0
  13. package/api/logiwa/logiwaInventoriesGet.js +67 -0
  14. package/api/logiwa/logiwaOrderGet.js +54 -0
  15. package/api/logiwa/logiwaOrdersGet.js +92 -0
  16. package/api/logiwa/logiwaProductGet.js +54 -0
  17. package/api/logiwa/logiwaProductsGet.js +80 -0
  18. package/api/logiwa/logiwaReportGetAvailableToPromise.js +179 -0
  19. package/api/logiwa/logiwaReportGetInventoryCalculation.js +62 -0
  20. package/api/logiwa/logiwaReportGetInventorySnapshot.js +66 -0
  21. package/api/logiwa/logiwaReportGetTotalInventory.js +72 -0
  22. package/api/logiwa/logiwaWebhookStatusGet.js +54 -0
  23. package/api/logiwa/logiwaWebhookSubscribe.js +64 -0
  24. package/api/logiwa/logiwaWebhookUnsubscribe.js +54 -0
  25. package/api/logiwa/logiwaWebhooksGet.js +48 -0
  26. package/api/shopify/_example.get.js +46 -0
  27. package/api/shopify/shopifyAbandonedCheckoutsGet.js +46 -0
  28. package/api/shopify/shopifyArticlesGet.js +46 -0
  29. package/api/shopify/shopifyBlogsGet.js +46 -0
  30. package/api/shopify/shopifyBulkOperationsGet.js +46 -0
  31. package/api/shopify/shopifyCatalogsGet.js +46 -0
  32. package/api/shopify/shopifyChannelsGet.js +46 -0
  33. package/api/shopify/shopifyCheckoutAndAccountsConfigurationsGet.js +46 -0
  34. package/api/shopify/shopifyCollectionsGet.js +46 -0
  35. package/api/shopify/shopifyCustomersGet.js +2 -0
  36. package/api/shopify/shopifyDeliveryCustomizationsGet.js +46 -0
  37. package/api/shopify/shopifyDeliveryProfilesGet.js +46 -0
  38. package/api/shopify/shopifyDiscountNodesGet.js +46 -0
  39. package/api/shopify/shopifyDisputesGet.js +46 -0
  40. package/api/shopify/shopifyDraftOrdersGet.js +46 -0
  41. package/api/shopify/shopifyEventsGet.js +46 -0
  42. package/api/shopify/shopifyFilesGet.js +46 -0
  43. package/api/shopify/shopifyFulfillmentOrdersGet.js +46 -0
  44. package/api/shopify/shopifyGiftCardsGet.js +46 -0
  45. package/api/shopify/shopifyInventoryItemsGet.js +46 -0
  46. package/api/shopify/shopifyLocationsGet.js +46 -0
  47. package/api/shopify/shopifyMarketingEventsGet.js +46 -0
  48. package/api/shopify/shopifyMarketsGet.js +46 -0
  49. package/api/shopify/shopifyMenusGet.js +46 -0
  50. package/api/shopify/shopifyMetafieldDefinitionsGet.js +50 -0
  51. package/api/shopify/shopifyMetaobjectDefinitionsGet.js +46 -0
  52. package/api/shopify/shopifyMetaobjectsGet.js +50 -0
  53. package/api/shopify/shopifyPagesGet.js +46 -0
  54. package/api/shopify/shopifyPaymentCustomizationsGet.js +46 -0
  55. package/api/shopify/shopifyProductFeedsGet.js +46 -0
  56. package/api/shopify/shopifyProductVariantsGet.js +46 -0
  57. package/api/shopify/shopifyProductsGet.js +46 -0
  58. package/api/shopify/shopifyPublicationsGet.js +46 -0
  59. package/api/shopify/shopifySegmentsGet.js +46 -0
  60. package/api/shopify/shopifyUrlRedirectsGet.js +46 -0
  61. package/api/shopify/shopifyWebhookSubscriptionsGet.js +46 -0
  62. package/api/utils.js +4 -3
  63. package/api/workspace.js +43 -0
  64. package/cli.js +42 -0
  65. package/hosting.utils.js +232 -0
  66. package/package.json +5 -3
  67. package/server.js +157 -107
  68. 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('.creds.yml', 'utf8');
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