@foxtware/mineral 0.1.9 → 0.1.10

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 (157) hide show
  1. package/.creds.yml.sample +27 -6
  2. package/AGENTS.md +6 -1
  3. package/README.md +1 -1
  4. package/api/bleckmann/.gitkeep +0 -0
  5. package/api/bleckmann/bleckmann.constants.js +8 -0
  6. package/api/bleckmann/bleckmann.utils.js +32 -0
  7. package/api/bleckmann/bleckmannAsnGet.js +52 -0
  8. package/api/bleckmann/bleckmannAsnsGet.js +65 -0
  9. package/api/constants.js +2 -1
  10. package/api/github/github.constants.js +11 -0
  11. package/api/github/github.utils.js +65 -0
  12. package/api/github/githubGet.js +144 -0
  13. package/api/github/githubIssueCreate.js +71 -0
  14. package/api/github/githubIssueGet.js +65 -0
  15. package/api/github/githubIssueUpdate.js +71 -0
  16. package/api/github/githubIssuesGet.js +74 -0
  17. package/api/github/githubPullRequestCreate.js +74 -0
  18. package/api/github/githubPullRequestGet.js +65 -0
  19. package/api/github/githubPullRequestMerge.js +77 -0
  20. package/api/github/githubPullRequestUpdate.js +72 -0
  21. package/api/github/githubPullRequestsGet.js +74 -0
  22. package/api/github/githubRepoCreate.js +80 -0
  23. package/api/github/githubRepoDelete.js +60 -0
  24. package/api/github/githubRepoGet.js +61 -0
  25. package/api/github/githubRepoUpdate.js +68 -0
  26. package/api/github/githubReposGet.js +69 -0
  27. package/api/github/githubUserGet.js +64 -0
  28. package/api/linear/linear.utils.js +9 -14
  29. package/api/linear/linearIssuesGet.js +9 -9
  30. package/api/logiwa/logiwa.utils.js +27 -25
  31. package/api/logiwa/logiwaInventoriesGet.js +5 -3
  32. package/api/logiwa/logiwaOrderGet.js +4 -2
  33. package/api/logiwa/logiwaOrdersGet.js +5 -3
  34. package/api/logiwa/logiwaProductGet.js +4 -2
  35. package/api/logiwa/logiwaProductsGet.js +5 -3
  36. package/api/logiwa/logiwaReportGetAvailableToPromise.js +5 -3
  37. package/api/logiwa/logiwaReportGetInventoryCalculation.js +5 -3
  38. package/api/logiwa/logiwaReportGetInventorySnapshot.js +5 -3
  39. package/api/logiwa/logiwaReportGetTotalInventory.js +5 -3
  40. package/api/logiwa/logiwaWebhookStatusGet.js +4 -2
  41. package/api/logiwa/logiwaWebhookSubscribe.js +8 -6
  42. package/api/logiwa/logiwaWebhookUnsubscribe.js +4 -2
  43. package/api/logiwa/logiwaWebhooksGet.js +4 -2
  44. package/api/loop/loop.utils.js +9 -15
  45. package/api/loop/loopGet.js +20 -24
  46. package/api/loop/loopReturnGet.js +6 -6
  47. package/api/peoplevox/peoplevox.constants.js +1 -1
  48. package/api/peoplevox/peoplevox.sessions.js +0 -33
  49. package/api/peoplevox/peoplevox.utils.js +63 -19
  50. package/api/peoplevox/peoplevoxGetSingle.js +7 -5
  51. package/api/peoplevox/peoplevoxOrderEdit.js +7 -5
  52. package/api/peoplevox/peoplevoxReportGet.js +11 -9
  53. package/api/pipelineSteps.js +49 -0
  54. package/api/shopify/shopify.utils.js +18 -24
  55. package/api/shopify/shopifyBulkMutationDo.js +211 -0
  56. package/api/shopify/shopifyBulkOperationGet.js +86 -0
  57. package/api/shopify/shopifyBulkOperationRunMutation.js +83 -0
  58. package/api/shopify/shopifyCheckoutAndAccountsConfigurationUpdate.js +79 -0
  59. package/api/shopify/shopifyCollectionGet.js +6 -6
  60. package/api/shopify/shopifyCustomerGet.js +6 -6
  61. package/api/shopify/shopifyGet.js +18 -13
  62. package/api/shopify/shopifyGetSingle.js +9 -9
  63. package/api/shopify/shopifyMutationDo.js +6 -6
  64. package/api/shopify/shopifyOrdersGet.js +11 -11
  65. package/api/shopify/shopifyStagedUploadCreate.js +96 -0
  66. package/api/shopify/shopifyTagsAddBulk.js +90 -0
  67. package/api/slack/slack.utils.js +10 -19
  68. package/api/slack/slackMessagePost.js +11 -11
  69. package/api/starshipit/starshipit.constants.js +8 -0
  70. package/api/starshipit/starshipit.utils.js +71 -0
  71. package/api/starshipit/starshipitAddressCreate.js +77 -0
  72. package/api/starshipit/starshipitAddressDelete.js +55 -0
  73. package/api/starshipit/starshipitAddressUpdate.js +69 -0
  74. package/api/starshipit/starshipitAddressesGet.js +52 -0
  75. package/api/starshipit/starshipitGet.js +146 -0
  76. package/api/starshipit/starshipitOrderDelete.js +102 -0
  77. package/api/starshipit/starshipitOrderGet.js +74 -0
  78. package/api/starshipit/starshipitOrderUpdate.js +109 -0
  79. package/api/starshipit/starshipitOrdersListShipped.js +64 -0
  80. package/api/starshipit/starshipitProductAdd.js +100 -0
  81. package/api/starshipit/starshipitProductsDelete.js +57 -0
  82. package/api/starshipit/starshipitProductsGet.js +49 -0
  83. package/api/starshipit/starshipitTrackingGet.js +69 -0
  84. package/api/stripe/_example.js +7 -7
  85. package/api/stripe/stripe.utils.js +9 -14
  86. package/api/stripe/stripeCardTokenCreate.js +11 -11
  87. package/api/stripe/stripeChargeCapture.js +11 -11
  88. package/api/stripe/stripeChargeCreate.js +11 -11
  89. package/api/stripe/stripeChargeGet.js +5 -5
  90. package/api/stripe/stripeChargesGet.js +6 -6
  91. package/api/stripe/stripeRefundCreate.js +10 -10
  92. package/api/stripe/stripeRefundGet.js +5 -5
  93. package/api/stripe/stripeRefundsGet.js +6 -6
  94. package/api/stripe/stripeTokenGet.js +5 -5
  95. package/api/stylearcade/stylearcade.constants.js +5 -0
  96. package/api/stylearcade/stylearcade.utils.js +40 -0
  97. package/api/stylearcade/stylearcadeDataGet.js +62 -0
  98. package/api/stylearcade/stylearcadeGet.js +133 -0
  99. package/api/stylearcade/stylearcadeMetadataGet.js +47 -0
  100. package/api/threeclicks/threeclicks.constants.js +8 -0
  101. package/api/threeclicks/threeclicks.utils.js +119 -0
  102. package/api/threeclicks/threeclicksCollectionsGet.js +40 -0
  103. package/api/threeclicks/threeclicksGet.js +138 -0
  104. package/api/threeclicks/threeclicksKeycodeCreate.js +55 -0
  105. package/api/threeclicks/threeclicksKeycodeGet.js +47 -0
  106. package/api/threeclicks/threeclicksPurchaseOrderCreate.js +34 -0
  107. package/api/threeclicks/threeclicksPurchaseOrderCreateBulk.js +34 -0
  108. package/api/threeclicks/threeclicksPurchaseOrderGet.js +33 -0
  109. package/api/threeclicks/threeclicksPurchaseOrderQuantitiesGet.js +33 -0
  110. package/api/threeclicks/threeclicksPurchaseOrderQuantityCreate.js +34 -0
  111. package/api/threeclicks/threeclicksPurchaseOrderQuantityCreateBulk.js +34 -0
  112. package/api/threeclicks/threeclicksPurchaseOrderQuantityUpdate.js +46 -0
  113. package/api/threeclicks/threeclicksPurchaseOrderQuantityUpdateBulk.js +46 -0
  114. package/api/threeclicks/threeclicksPurchaseOrderUpdate.js +35 -0
  115. package/api/threeclicks/threeclicksPurchaseOrdersGet.js +30 -0
  116. package/api/threeclicks/threeclicksShipmentCreate.js +34 -0
  117. package/api/threeclicks/threeclicksShipmentGet.js +33 -0
  118. package/api/threeclicks/threeclicksShipmentOrderAdd.js +38 -0
  119. package/api/threeclicks/threeclicksShipmentOrderQuantityCreate.js +35 -0
  120. package/api/threeclicks/threeclicksShipmentQuantityUpdate.js +35 -0
  121. package/api/threeclicks/threeclicksShipmentStatusUpdate.js +45 -0
  122. package/api/threeclicks/threeclicksShipmentsGet.js +52 -0
  123. package/api/threeclicks/threeclicksSignatureCalculate.js +73 -0
  124. package/api/threeclicks/threeclicksStyleCodesGet.js +46 -0
  125. package/api/threeclicks/threeclicksStyleColourCreate.js +47 -0
  126. package/api/threeclicks/threeclicksStyleColourDelete.js +34 -0
  127. package/api/threeclicks/threeclicksStyleCreate.js +44 -0
  128. package/api/threeclicks/threeclicksStyleDelete.js +33 -0
  129. package/api/threeclicks/threeclicksStyleGet.js +43 -0
  130. package/api/threeclicks/threeclicksStylePriceUpdate.js +70 -0
  131. package/api/threeclicks/threeclicksStyleUpdate.js +47 -0
  132. package/api/threeclicks/threeclicksStylesGet.js +45 -0
  133. package/api/utils.js +85 -117
  134. package/api/validators.js +1 -1
  135. package/api/workable/workable.utils.js +8 -13
  136. package/api/workable/workableGet.js +16 -11
  137. package/api/workable/workableJobCandidateCreate.js +10 -10
  138. package/api/workable/workableJobGet.js +5 -5
  139. package/api/workable/workableJobMembersGet.js +5 -5
  140. package/api/workable/workableJobStagesGet.js +5 -5
  141. package/api/yotpo/yotpo.utils.js +17 -22
  142. package/api/yotpo/yotpoCampaignsGet.js +6 -6
  143. package/api/yotpo/yotpoCustomerActionRecord.js +7 -7
  144. package/api/yotpo/yotpoCustomerAnniversaryGet.js +7 -7
  145. package/api/yotpo/yotpoCustomerAnniversarySet.js +7 -7
  146. package/api/yotpo/yotpoCustomerBirthdaySet.js +7 -7
  147. package/api/yotpo/yotpoCustomerGet.js +6 -6
  148. package/api/yotpo/yotpoCustomerPointsAdjust.js +7 -7
  149. package/api/yotpo/yotpoCustomerUpsert.js +7 -7
  150. package/api/yotpo/yotpoCustomersRecentGet.js +6 -6
  151. package/api/yotpo/yotpoRedemptionCreate.js +7 -7
  152. package/api/yotpo/yotpoRedemptionOptionsGet.js +6 -6
  153. package/api/yotpo/yotpoVipTiersGet.js +5 -5
  154. package/api/youtube/youtube.constants.js +5 -0
  155. package/api/youtube/youtube.utils.js +77 -0
  156. package/api/youtube/youtubeChannelVideosGet.js +25 -70
  157. package/package.json +1 -1
@@ -0,0 +1,45 @@
1
+ // https://g40-server.instance.3clickscloud.com/swagger-ui/index.html#operations-v1_-_Shipping-detailsUpdate
2
+
3
+ const { ArgsWarden } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { threeclicksClient } = require('../threeclicks/threeclicks.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['shipmentNumber'],
10
+ ['status'],
11
+ ]);
12
+
13
+ const threeclicksShipmentStatusUpdate = async (
14
+ credsPayload,
15
+ shipmentNumber,
16
+ status,
17
+ {
18
+ isUpdateAllAssociatedOrdersToCompletedStatus = true,
19
+ } = {},
20
+ ) => {
21
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({ credsPayload, shipmentNumber, status });
22
+ if (rejectResponse) return rejectResponse;
23
+ return threeclicksClient.fetch({
24
+ requestPayload: {
25
+ url: `/shipping/status/${ shipmentNumber }`,
26
+ method: 'patch',
27
+ body: {
28
+ status,
29
+ is_update_all_associated_orders_to_completed_status: isUpdateAllAssociatedOrdersToCompletedStatus,
30
+ },
31
+ },
32
+ context: {
33
+ credsPayload,
34
+ },
35
+ });
36
+ };
37
+
38
+ const funcApiConfig = {
39
+ argsWarden,
40
+ };
41
+
42
+ module.exports = {
43
+ threeclicksShipmentStatusUpdate,
44
+ funcApiConfig,
45
+ };
@@ -0,0 +1,52 @@
1
+ // https://g40-server.instance.3clickscloud.com/swagger-ui/index.html#operations-v1_-_Search_>_Advanced-shippingSearch
2
+
3
+ const { ArgsWarden, timeMs } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { threeclicksGet } = require('../threeclicks/threeclicksGet');
6
+
7
+ const argsWarden = new ArgsWarden([['credsPayload', credsValidator]]);
8
+
9
+ const threeclicksShipmentsGet = async (
10
+ credsPayload,
11
+ {
12
+ mode = 'all',
13
+ updatedSinceDaysAgo,
14
+ updatedSinceHoursAgo,
15
+ ...getterOptions
16
+ } = {},
17
+ ) => {
18
+
19
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({ credsPayload });
20
+ if (rejectResponse) return rejectResponse;
21
+
22
+ const updatedSinceUnix = updatedSinceDaysAgo
23
+ ? Math.floor((Date.now() - timeMs.days(updatedSinceDaysAgo)) / 1000).toString()
24
+ : updatedSinceHoursAgo
25
+ ? Math.floor((Date.now() - timeMs.hours(updatedSinceHoursAgo)) / 1000).toString()
26
+ : null;
27
+
28
+ return threeclicksGet(credsPayload, '/search/advanced/shipping', {
29
+ params: {
30
+ mode,
31
+ ...updatedSinceUnix && { last_updated_at_from: updatedSinceUnix },
32
+ },
33
+ ...getterOptions,
34
+ });
35
+ };
36
+
37
+ const funcApiConfig = {
38
+ argsWarden,
39
+ };
40
+
41
+ module.exports = {
42
+ threeclicksShipmentsGet,
43
+ funcApiConfig,
44
+ };
45
+
46
+ /*
47
+ curl -X POST "http://localhost:8000/threeclicksShipmentsGet" \
48
+ -H "Content-Type: application/json" \
49
+ -d '{
50
+ "credsPayload": { "credsPath": "threeclicks" }
51
+ }'
52
+ */
@@ -0,0 +1,73 @@
1
+ // https://g40-server.instance.3clickscloud.com/swagger-ui/index.html
2
+
3
+ const { ArgsWarden, credsFromPayload } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const {
6
+ threeclicksSignatureCalculate,
7
+ getSignatureData,
8
+ } = require('../threeclicks/threeclicks.utils');
9
+
10
+ const argsWarden = new ArgsWarden([
11
+ ['credsPayload', credsValidator],
12
+ ['method'],
13
+ ]);
14
+
15
+ const threeclicksSignatureCalculateEndpoint = async (
16
+ credsPayload,
17
+ method,
18
+ {
19
+ params,
20
+ body,
21
+ } = {},
22
+ ) => {
23
+
24
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
25
+ credsPayload,
26
+ method,
27
+ });
28
+ if (rejectResponse) {
29
+ return rejectResponse;
30
+ }
31
+
32
+ const creds = await credsFromPayload(credsPayload);
33
+ const normalizedMethod = method.toLowerCase();
34
+ const data = getSignatureData({
35
+ method: normalizedMethod,
36
+ params,
37
+ body,
38
+ });
39
+
40
+ const result = threeclicksSignatureCalculate({
41
+ creds,
42
+ method: normalizedMethod,
43
+ data,
44
+ });
45
+
46
+ return {
47
+ ok: true,
48
+ data: result,
49
+ };
50
+ };
51
+
52
+ const funcApiConfig = {
53
+ argsWarden,
54
+ };
55
+
56
+ module.exports = {
57
+ threeclicksSignatureCalculate: threeclicksSignatureCalculateEndpoint,
58
+ funcApiConfig,
59
+ };
60
+
61
+ /*
62
+ curl -X POST "http://localhost:8000/threeclicksSignatureCalculate" \
63
+ -H "Content-Type: application/json" \
64
+ -d '{
65
+ "credsPayload": { "credsPath": "threeclicks" },
66
+ "method": "get",
67
+ "options": {
68
+ "params": {
69
+ "hey": "true"
70
+ }
71
+ }
72
+ }'
73
+ */
@@ -0,0 +1,46 @@
1
+ // https://g40-server.instance.3clickscloud.com/swagger-ui/index.html#operations-tag-v1_-_Site_Settings_>_Style
2
+
3
+ const { ArgsWarden } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { threeclicksClient } = require('../threeclicks/threeclicks.utils');
6
+
7
+ const STYLE_CODE_TYPES = ['brand', 'category', 'collection', 'type'];
8
+
9
+ const codesForValidator = (codesFor) => STYLE_CODE_TYPES.includes(codesFor);
10
+
11
+ const argsWarden = new ArgsWarden([
12
+ ['credsPayload', credsValidator],
13
+ ['codesFor', codesForValidator],
14
+ ]);
15
+
16
+ const threeclicksStyleCodesGet = async (credsPayload, codesFor) => {
17
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({ credsPayload, codesFor });
18
+ if (rejectResponse) return rejectResponse;
19
+ return threeclicksClient.fetch({
20
+ requestPayload: {
21
+ url: `/site-settings/style/${ codesFor }`,
22
+ method: 'get',
23
+ },
24
+ context: {
25
+ credsPayload,
26
+ },
27
+ });
28
+ };
29
+
30
+ const funcApiConfig = {
31
+ argsWarden,
32
+ };
33
+
34
+ module.exports = {
35
+ threeclicksStyleCodesGet,
36
+ funcApiConfig,
37
+ };
38
+
39
+ /*
40
+ curl -X POST "http://localhost:8000/threeclicksStyleCodesGet" \
41
+ -H "Content-Type: application/json" \
42
+ -d '{
43
+ "credsPayload": { "credsPath": "threeclicks" },
44
+ "codesFor": "collection"
45
+ }'
46
+ */
@@ -0,0 +1,47 @@
1
+ // https://g40-server.instance.3clickscloud.com/swagger-ui/index.html#operations-v1_-_Style_>_Details-colourCreate
2
+
3
+ const { ArgsWarden } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { threeclicksClient } = require('../threeclicks/threeclicks.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['styleNumber'],
10
+ ['colourPayload'],
11
+ ]);
12
+
13
+ const threeclicksStyleColourCreate = async (
14
+ credsPayload,
15
+ styleNumber,
16
+ colourPayload,
17
+ ) => {
18
+
19
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
20
+ credsPayload,
21
+ styleNumber,
22
+ colourPayload,
23
+ });
24
+ if (rejectResponse) {
25
+ return rejectResponse;
26
+ }
27
+
28
+ return threeclicksClient.fetch({
29
+ requestPayload: {
30
+ url: `/style/basic/colour/${ styleNumber }`,
31
+ method: 'post',
32
+ body: colourPayload,
33
+ },
34
+ context: {
35
+ credsPayload,
36
+ },
37
+ });
38
+ };
39
+
40
+ const funcApiConfig = {
41
+ argsWarden,
42
+ };
43
+
44
+ module.exports = {
45
+ threeclicksStyleColourCreate,
46
+ funcApiConfig,
47
+ };
@@ -0,0 +1,34 @@
1
+ // https://g40-server.instance.3clickscloud.com/swagger-ui/index.html#operations-v1_-_Style_>_Details-colourDelete
2
+
3
+ const { ArgsWarden } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { threeclicksClient } = require('../threeclicks/threeclicks.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['styleNumber'],
10
+ ['styleColoursizeId'],
11
+ ]);
12
+
13
+ const threeclicksStyleColourDelete = async (credsPayload, styleNumber, styleColoursizeId) => {
14
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({ credsPayload, styleNumber, styleColoursizeId });
15
+ if (rejectResponse) return rejectResponse;
16
+ return threeclicksClient.fetch({
17
+ requestPayload: {
18
+ url: `/style/basic/colour/${ styleNumber }/${ styleColoursizeId }`,
19
+ method: 'delete',
20
+ },
21
+ context: {
22
+ credsPayload,
23
+ },
24
+ });
25
+ };
26
+
27
+ const funcApiConfig = {
28
+ argsWarden,
29
+ };
30
+
31
+ module.exports = {
32
+ threeclicksStyleColourDelete,
33
+ funcApiConfig,
34
+ };
@@ -0,0 +1,44 @@
1
+ // https://g40-server.instance.3clickscloud.com/swagger-ui/index.html#operations-v1_-_Style-create
2
+
3
+ const { ArgsWarden } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { threeclicksClient } = require('../threeclicks/threeclicks.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['stylePayload'],
10
+ ]);
11
+
12
+ const threeclicksStyleCreate = async (
13
+ credsPayload,
14
+ stylePayload,
15
+ ) => {
16
+
17
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
18
+ credsPayload,
19
+ stylePayload,
20
+ });
21
+ if (rejectResponse) {
22
+ return rejectResponse;
23
+ }
24
+
25
+ return threeclicksClient.fetch({
26
+ requestPayload: {
27
+ url: '/style',
28
+ method: 'post',
29
+ body: stylePayload,
30
+ },
31
+ context: {
32
+ credsPayload,
33
+ },
34
+ });
35
+ };
36
+
37
+ const funcApiConfig = {
38
+ argsWarden,
39
+ };
40
+
41
+ module.exports = {
42
+ threeclicksStyleCreate,
43
+ funcApiConfig,
44
+ };
@@ -0,0 +1,33 @@
1
+ // https://g40-server.instance.3clickscloud.com/swagger-ui/index.html#operations-v1_-_Style-delete
2
+
3
+ const { ArgsWarden } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { threeclicksClient } = require('../threeclicks/threeclicks.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['styleNumber'],
10
+ ]);
11
+
12
+ const threeclicksStyleDelete = async (credsPayload, styleNumber) => {
13
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({ credsPayload, styleNumber });
14
+ if (rejectResponse) return rejectResponse;
15
+ return threeclicksClient.fetch({
16
+ requestPayload: {
17
+ url: `/style/${ styleNumber }`,
18
+ method: 'delete',
19
+ },
20
+ context: {
21
+ credsPayload,
22
+ },
23
+ });
24
+ };
25
+
26
+ const funcApiConfig = {
27
+ argsWarden,
28
+ };
29
+
30
+ module.exports = {
31
+ threeclicksStyleDelete,
32
+ funcApiConfig,
33
+ };
@@ -0,0 +1,43 @@
1
+ // https://g40-server.instance.3clickscloud.com/swagger-ui/index.html#operations-v1_-_Style_>_Details-detail_4
2
+
3
+ const { ArgsWarden } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { threeclicksClient } = require('../threeclicks/threeclicks.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['styleNumber'],
10
+ ]);
11
+
12
+ const threeclicksStyleGet = async (
13
+ credsPayload,
14
+ styleNumber,
15
+ ) => {
16
+
17
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
18
+ credsPayload,
19
+ styleNumber,
20
+ });
21
+ if (rejectResponse) {
22
+ return rejectResponse;
23
+ }
24
+
25
+ return threeclicksClient.fetch({
26
+ requestPayload: {
27
+ url: `/style/basic/${ styleNumber }`,
28
+ method: 'get',
29
+ },
30
+ context: {
31
+ credsPayload,
32
+ },
33
+ });
34
+ };
35
+
36
+ const funcApiConfig = {
37
+ argsWarden,
38
+ };
39
+
40
+ module.exports = {
41
+ threeclicksStyleGet,
42
+ funcApiConfig,
43
+ };
@@ -0,0 +1,70 @@
1
+ // https://g40-server.instance.3clickscloud.com/swagger-ui/index.html#operations-v1_-_Style_>_Details-updatePricing
2
+
3
+ const { ArgsWarden } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { threeclicksClient } = require('../threeclicks/threeclicks.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['styleNumber'],
10
+ ['sizes'],
11
+ ['buyPrice'],
12
+ ['sellPrice'],
13
+ ]);
14
+
15
+ const threeclicksStylePriceUpdate = async (
16
+ credsPayload,
17
+ styleNumber,
18
+ sizes,
19
+ buyPrice,
20
+ sellPrice,
21
+ {
22
+ currency = 'USD',
23
+ type = 'one_price',
24
+ option,
25
+ } = {},
26
+ ) => {
27
+
28
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
29
+ credsPayload,
30
+ styleNumber,
31
+ sizes,
32
+ buyPrice,
33
+ sellPrice,
34
+ });
35
+ if (rejectResponse) {
36
+ return rejectResponse;
37
+ }
38
+
39
+ const body = {
40
+ sizes: sizes.map((size) => ({
41
+ size,
42
+ buy_price: [{ price: buyPrice, currency }],
43
+ sell_price: [{ price: sellPrice, currency }],
44
+ retail_price: [{ price: sellPrice, currency }],
45
+ alt_retail_price: [{ price: sellPrice, currency }],
46
+ })),
47
+ type,
48
+ ...option && { option },
49
+ };
50
+
51
+ return threeclicksClient.fetch({
52
+ requestPayload: {
53
+ url: `/style/basic/pricing/${ styleNumber }`,
54
+ method: 'patch',
55
+ body,
56
+ },
57
+ context: {
58
+ credsPayload,
59
+ },
60
+ });
61
+ };
62
+
63
+ const funcApiConfig = {
64
+ argsWarden,
65
+ };
66
+
67
+ module.exports = {
68
+ threeclicksStylePriceUpdate,
69
+ funcApiConfig,
70
+ };
@@ -0,0 +1,47 @@
1
+ // https://g40-server.instance.3clickscloud.com/swagger-ui/index.html#operations-v1_-_Style_>_Details-update_2
2
+
3
+ const { ArgsWarden } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { threeclicksClient } = require('../threeclicks/threeclicks.utils');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ['styleNumber'],
10
+ ['stylePayload'],
11
+ ]);
12
+
13
+ const threeclicksStyleUpdate = async (
14
+ credsPayload,
15
+ styleNumber,
16
+ stylePayload,
17
+ ) => {
18
+
19
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({
20
+ credsPayload,
21
+ styleNumber,
22
+ stylePayload,
23
+ });
24
+ if (rejectResponse) {
25
+ return rejectResponse;
26
+ }
27
+
28
+ return threeclicksClient.fetch({
29
+ requestPayload: {
30
+ url: `/style/basic/${ styleNumber }`,
31
+ method: 'patch',
32
+ body: stylePayload,
33
+ },
34
+ context: {
35
+ credsPayload,
36
+ },
37
+ });
38
+ };
39
+
40
+ const funcApiConfig = {
41
+ argsWarden,
42
+ };
43
+
44
+ module.exports = {
45
+ threeclicksStyleUpdate,
46
+ funcApiConfig,
47
+ };
@@ -0,0 +1,45 @@
1
+ // https://g40-server.instance.3clickscloud.com/swagger-ui/index.html#operations-v1_-_Search_>_Advanced-styleSearch
2
+
3
+ const { ArgsWarden } = require('../utils');
4
+ const { credsValidator } = require('../validators');
5
+ const { threeclicksGet } = require('../threeclicks/threeclicksGet');
6
+
7
+ const argsWarden = new ArgsWarden([
8
+ ['credsPayload', credsValidator],
9
+ ]);
10
+
11
+ const threeclicksStylesGet = async (
12
+ credsPayload,
13
+ {
14
+ mode = 'all',
15
+ ...getterOptions
16
+ } = {},
17
+ ) => {
18
+
19
+ const rejectResponse = await argsWarden.responseIfRejectingArgs({ credsPayload });
20
+ if (rejectResponse) {
21
+ return rejectResponse;
22
+ }
23
+
24
+ return threeclicksGet(credsPayload, '/search/advanced/style', {
25
+ params: { mode },
26
+ ...getterOptions,
27
+ });
28
+ };
29
+
30
+ const funcApiConfig = {
31
+ argsWarden,
32
+ };
33
+
34
+ module.exports = {
35
+ threeclicksStylesGet,
36
+ funcApiConfig,
37
+ };
38
+
39
+ /*
40
+ curl -X POST "http://localhost:8000/threeclicksStylesGet" \
41
+ -H "Content-Type: application/json" \
42
+ -d '{
43
+ "credsPayload": { "credsPath": "threeclicks" }
44
+ }'
45
+ */