@things-factory/integration-sellercraft 9.0.0-beta.27 → 9.0.0-beta.29

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 (146) hide show
  1. package/dist-server/constants/index.d.ts +2 -0
  2. package/dist-server/constants/index.js +6 -0
  3. package/dist-server/constants/index.js.map +1 -0
  4. package/dist-server/constants/order-status-mapping.d.ts +27 -0
  5. package/dist-server/constants/order-status-mapping.js +31 -0
  6. package/dist-server/constants/order-status-mapping.js.map +1 -0
  7. package/dist-server/constants/platform.d.ts +6 -0
  8. package/dist-server/constants/platform.js +10 -0
  9. package/dist-server/constants/platform.js.map +1 -0
  10. package/dist-server/controllers/index.d.ts +4 -0
  11. package/dist-server/controllers/index.js +8 -0
  12. package/dist-server/controllers/index.js.map +1 -0
  13. package/dist-server/controllers/sellercraft/apis/add-inbound-order.d.ts +8 -0
  14. package/dist-server/controllers/sellercraft/apis/add-inbound-order.js +46 -0
  15. package/dist-server/controllers/sellercraft/apis/add-inbound-order.js.map +1 -0
  16. package/dist-server/controllers/sellercraft/apis/echo.d.ts +12 -0
  17. package/dist-server/controllers/sellercraft/apis/echo.js +18 -0
  18. package/dist-server/controllers/sellercraft/apis/echo.js.map +1 -0
  19. package/dist-server/controllers/sellercraft/apis/fetch-order-document.d.ts +16 -0
  20. package/dist-server/controllers/sellercraft/apis/fetch-order-document.js +21 -0
  21. package/dist-server/controllers/sellercraft/apis/fetch-order-document.js.map +1 -0
  22. package/dist-server/controllers/sellercraft/apis/index.d.ts +8 -0
  23. package/dist-server/controllers/sellercraft/apis/index.js +12 -0
  24. package/dist-server/controllers/sellercraft/apis/index.js.map +1 -0
  25. package/dist-server/controllers/sellercraft/apis/initiate-order-document.d.ts +12 -0
  26. package/dist-server/controllers/sellercraft/apis/initiate-order-document.js +20 -0
  27. package/dist-server/controllers/sellercraft/apis/initiate-order-document.js.map +1 -0
  28. package/dist-server/controllers/sellercraft/apis/initiate-order-shipment.d.ts +17 -0
  29. package/dist-server/controllers/sellercraft/apis/initiate-order-shipment.js +26 -0
  30. package/dist-server/controllers/sellercraft/apis/initiate-order-shipment.js.map +1 -0
  31. package/dist-server/controllers/sellercraft/apis/pack-marketplace-order.d.ts +12 -0
  32. package/dist-server/controllers/sellercraft/apis/pack-marketplace-order.js +35 -0
  33. package/dist-server/controllers/sellercraft/apis/pack-marketplace-order.js.map +1 -0
  34. package/dist-server/controllers/sellercraft/apis/update-marketplace-order.d.ts +6 -0
  35. package/dist-server/controllers/sellercraft/apis/update-marketplace-order.js +17 -0
  36. package/dist-server/controllers/sellercraft/apis/update-marketplace-order.js.map +1 -0
  37. package/dist-server/controllers/sellercraft/apis/update-product.d.ts +11 -0
  38. package/dist-server/controllers/sellercraft/apis/update-product.js +23 -0
  39. package/dist-server/controllers/sellercraft/apis/update-product.js.map +1 -0
  40. package/dist-server/controllers/sellercraft/index.d.ts +1 -0
  41. package/dist-server/controllers/sellercraft/index.js +9 -0
  42. package/dist-server/controllers/sellercraft/index.js.map +1 -0
  43. package/dist-server/controllers/sellercraft/platform-action.d.ts +5 -0
  44. package/dist-server/controllers/sellercraft/platform-action.js +33 -0
  45. package/dist-server/controllers/sellercraft/platform-action.js.map +1 -0
  46. package/dist-server/controllers/sellercraft/sellercraft.d.ts +12 -0
  47. package/dist-server/controllers/sellercraft/sellercraft.js +91 -0
  48. package/dist-server/controllers/sellercraft/sellercraft.js.map +1 -0
  49. package/dist-server/controllers/sellercraft-api/decorators.d.ts +1 -0
  50. package/dist-server/controllers/sellercraft-api/decorators.js +38 -0
  51. package/dist-server/controllers/sellercraft-api/decorators.js.map +1 -0
  52. package/dist-server/controllers/sellercraft-api/index.d.ts +15 -0
  53. package/dist-server/controllers/sellercraft-api/index.js +84 -0
  54. package/dist-server/controllers/sellercraft-api/index.js.map +1 -0
  55. package/dist-server/controllers/sellercraft-api/types.d.ts +0 -0
  56. package/dist-server/controllers/sellercraft-api/types.js +1 -0
  57. package/dist-server/controllers/sellercraft-api/types.js.map +1 -0
  58. package/dist-server/controllers/sellercraft-channel-integration/apis/echo.d.ts +12 -0
  59. package/dist-server/controllers/sellercraft-channel-integration/apis/echo.js +18 -0
  60. package/dist-server/controllers/sellercraft-channel-integration/apis/echo.js.map +1 -0
  61. package/dist-server/controllers/sellercraft-channel-integration/apis/index.d.ts +6 -0
  62. package/dist-server/controllers/sellercraft-channel-integration/apis/index.js +10 -0
  63. package/dist-server/controllers/sellercraft-channel-integration/apis/index.js.map +1 -0
  64. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.d.ts +8 -0
  65. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.js +38 -0
  66. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.js.map +1 -0
  67. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-category-attributes.d.ts +11 -0
  68. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-category-attributes.js +47 -0
  69. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-category-attributes.js.map +1 -0
  70. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.d.ts +8 -0
  71. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.js +48 -0
  72. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.js.map +1 -0
  73. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order.d.ts +8 -0
  74. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order.js +92 -0
  75. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order.js.map +1 -0
  76. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-product.d.ts +8 -0
  77. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-product.js +90 -0
  78. package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-product.js.map +1 -0
  79. package/dist-server/controllers/sellercraft-channel-integration/index.d.ts +1 -0
  80. package/dist-server/controllers/sellercraft-channel-integration/index.js +9 -0
  81. package/dist-server/controllers/sellercraft-channel-integration/index.js.map +1 -0
  82. package/dist-server/controllers/sellercraft-channel-integration/platform-action.d.ts +5 -0
  83. package/dist-server/controllers/sellercraft-channel-integration/platform-action.js +33 -0
  84. package/dist-server/controllers/sellercraft-channel-integration/platform-action.js.map +1 -0
  85. package/dist-server/controllers/sellercraft-channel-integration/sellercraft-channel-integration.d.ts +12 -0
  86. package/dist-server/controllers/sellercraft-channel-integration/sellercraft-channel-integration.js +99 -0
  87. package/dist-server/controllers/sellercraft-channel-integration/sellercraft-channel-integration.js.map +1 -0
  88. package/dist-server/controllers/sellercraft-channel-integration-api/decorators.d.ts +1 -0
  89. package/dist-server/controllers/sellercraft-channel-integration-api/decorators.js +30 -0
  90. package/dist-server/controllers/sellercraft-channel-integration-api/decorators.js.map +1 -0
  91. package/dist-server/controllers/sellercraft-channel-integration-api/index.d.ts +13 -0
  92. package/dist-server/controllers/sellercraft-channel-integration-api/index.js +70 -0
  93. package/dist-server/controllers/sellercraft-channel-integration-api/index.js.map +1 -0
  94. package/dist-server/controllers/sellercraft-channel-integration-api/types.d.ts +0 -0
  95. package/dist-server/controllers/sellercraft-channel-integration-api/types.js +1 -0
  96. package/dist-server/controllers/sellercraft-channel-integration-api/types.js.map +1 -0
  97. package/dist-server/index.d.ts +6 -0
  98. package/dist-server/index.js +10 -0
  99. package/dist-server/index.js.map +1 -0
  100. package/dist-server/middlewares/index.d.ts +1 -0
  101. package/dist-server/middlewares/index.js +7 -0
  102. package/dist-server/middlewares/index.js.map +1 -0
  103. package/dist-server/migrations/index.d.ts +1 -0
  104. package/dist-server/migrations/index.js +12 -0
  105. package/dist-server/migrations/index.js.map +1 -0
  106. package/dist-server/routers/sellercraft-router.d.ts +1 -0
  107. package/dist-server/routers/sellercraft-router.js +284 -0
  108. package/dist-server/routers/sellercraft-router.js.map +1 -0
  109. package/dist-server/routes.d.ts +1 -0
  110. package/dist-server/routes.js +29 -0
  111. package/dist-server/routes.js.map +1 -0
  112. package/dist-server/service/index.d.ts +7 -0
  113. package/dist-server/service/index.js +23 -0
  114. package/dist-server/service/index.js.map +1 -0
  115. package/dist-server/service/marketplace-channel/index.d.ts +5 -0
  116. package/dist-server/service/marketplace-channel/index.js +9 -0
  117. package/dist-server/service/marketplace-channel/index.js.map +1 -0
  118. package/dist-server/service/marketplace-channel/marketplace-channel-order-mutation.d.ts +3 -0
  119. package/dist-server/service/marketplace-channel/marketplace-channel-order-mutation.js +391 -0
  120. package/dist-server/service/marketplace-channel/marketplace-channel-order-mutation.js.map +1 -0
  121. package/dist-server/service/marketplace-channel/marketplace-channel-product-mutation.d.ts +3 -0
  122. package/dist-server/service/marketplace-channel/marketplace-channel-product-mutation.js +244 -0
  123. package/dist-server/service/marketplace-channel/marketplace-channel-product-mutation.js.map +1 -0
  124. package/dist-server/service/marketplace-channel/marketplace-channel.d.ts +18 -0
  125. package/dist-server/service/marketplace-channel/marketplace-channel.js +84 -0
  126. package/dist-server/service/marketplace-channel/marketplace-channel.js.map +1 -0
  127. package/dist-server/service/sellercraft/index.d.ts +5 -0
  128. package/dist-server/service/sellercraft/index.js +9 -0
  129. package/dist-server/service/sellercraft/index.js.map +1 -0
  130. package/dist-server/service/sellercraft/sellercraft-mutation.d.ts +9 -0
  131. package/dist-server/service/sellercraft/sellercraft-mutation.js +111 -0
  132. package/dist-server/service/sellercraft/sellercraft-mutation.js.map +1 -0
  133. package/dist-server/service/sellercraft/sellercraft-query.d.ts +11 -0
  134. package/dist-server/service/sellercraft/sellercraft-query.js +71 -0
  135. package/dist-server/service/sellercraft/sellercraft-query.js.map +1 -0
  136. package/dist-server/service/sellercraft/sellercraft-type.d.ts +21 -0
  137. package/dist-server/service/sellercraft/sellercraft-type.js +81 -0
  138. package/dist-server/service/sellercraft/sellercraft-type.js.map +1 -0
  139. package/dist-server/service/sellercraft/sellercraft.d.ts +27 -0
  140. package/dist-server/service/sellercraft/sellercraft.js +107 -0
  141. package/dist-server/service/sellercraft/sellercraft.js.map +1 -0
  142. package/dist-server/tsconfig.tsbuildinfo +1 -0
  143. package/dist-server/utils/tokencraft-util.d.ts +2 -0
  144. package/dist-server/utils/tokencraft-util.js +64 -0
  145. package/dist-server/utils/tokencraft-util.js.map +1 -0
  146. package/package.json +13 -13
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Sellercraft = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
6
+ const uuid_1 = require("uuid");
7
+ const debug = require('debug')('things-factory:integration-sellercraft:sellercraft');
8
+ class Sellercraft {
9
+ constructor(config) {
10
+ this.config = Object.assign({}, config);
11
+ }
12
+ getBaseUrl() {
13
+ return `https://open.sellercraft.co/v1`;
14
+ }
15
+ generateRequestId() {
16
+ return (0, uuid_1.v4)();
17
+ }
18
+ async post(path, data = {}) {
19
+ const { apiKey } = this.config;
20
+ debug('data', data);
21
+ const jsondata = JSON.stringify(data);
22
+ const requestId = this.generateRequestId();
23
+ const fullPath = `${this.getBaseUrl()}${path}`;
24
+ const response = await (0, node_fetch_1.default)(fullPath, {
25
+ method: 'post',
26
+ headers: {
27
+ 'Content-Type': 'application/json',
28
+ request_id: requestId,
29
+ 'x-api-key': apiKey
30
+ },
31
+ body: jsondata
32
+ });
33
+ if (response.ok) {
34
+ return await response.json();
35
+ }
36
+ else {
37
+ const result = await response.text();
38
+ throw new Error(`(${response.status}) ${result}`);
39
+ }
40
+ }
41
+ async put(path, data = {}) {
42
+ const { apiKey } = this.config;
43
+ const jsondata = JSON.stringify(data);
44
+ const requestId = this.generateRequestId();
45
+ const fullPath = `${this.getBaseUrl()}${path}`;
46
+ debug('data', data);
47
+ const response = await (0, node_fetch_1.default)(fullPath, {
48
+ method: 'put',
49
+ headers: {
50
+ 'Content-Type': 'application/json',
51
+ request_id: requestId,
52
+ 'x-api-key': apiKey
53
+ },
54
+ body: jsondata
55
+ });
56
+ if (response.ok) {
57
+ return await response.json();
58
+ }
59
+ else {
60
+ const result = await response.text();
61
+ throw new Error(`(${response.status}) ${result}`);
62
+ }
63
+ }
64
+ async get(path, data = {}) {
65
+ const { apiKey } = this.config;
66
+ const qs = Object.entries(data)
67
+ .map(([k, v]) => `${k}=${encodeURIComponent(String(v))}`)
68
+ .join('&');
69
+ const fullPath = `${this.getBaseUrl()}${path}`;
70
+ const endpoint = `${fullPath}${qs ? '?' + qs : ''}`;
71
+ debug('endpoint', endpoint);
72
+ const requestId = this.generateRequestId();
73
+ const response = await (0, node_fetch_1.default)(endpoint, {
74
+ method: 'get',
75
+ headers: {
76
+ 'Content-Type': 'application/json',
77
+ request_id: requestId,
78
+ 'x-api-key': apiKey
79
+ }
80
+ });
81
+ if (response.ok) {
82
+ return await response.json();
83
+ }
84
+ else {
85
+ const result = await response.text();
86
+ throw new Error(`(${response.status}) ${result}`);
87
+ }
88
+ }
89
+ }
90
+ exports.Sellercraft = Sellercraft;
91
+ //# sourceMappingURL=sellercraft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sellercraft.js","sourceRoot":"","sources":["../../../server/controllers/sellercraft/sellercraft.ts"],"names":[],"mappings":"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","sourcesContent":["import fetch from 'node-fetch'\nimport { v4 as uuidv4 } from 'uuid'\n\nconst debug = require('debug')('things-factory:integration-sellercraft:sellercraft')\n\nexport type SellercraftConfig = {\n apiKey: string\n}\n\nexport class Sellercraft {\n private config: SellercraftConfig\n\n constructor(config: SellercraftConfig) {\n this.config = {\n ...config\n }\n }\n\n getBaseUrl() {\n return `https://open.sellercraft.co/v1`\n }\n\n generateRequestId() {\n return uuidv4()\n }\n\n async post(path: string, data: any = {}) {\n const { apiKey } = this.config\n\n debug('data', data)\n\n const jsondata = JSON.stringify(data)\n const requestId: string = this.generateRequestId()\n const fullPath: string = `${this.getBaseUrl()}${path}`\n\n const response: any = await fetch(fullPath, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json',\n request_id: requestId,\n 'x-api-key': apiKey\n },\n body: jsondata\n })\n\n if (response.ok) {\n return await response.json()\n } else {\n const result = await response.text()\n throw new Error(`(${response.status}) ${result}`)\n }\n }\n\n async put(path: string, data: any = {}) {\n const { apiKey } = this.config\n\n const jsondata = JSON.stringify(data)\n const requestId: string = this.generateRequestId()\n const fullPath: string = `${this.getBaseUrl()}${path}`\n debug('data', data)\n\n const response: any = await fetch(fullPath, {\n method: 'put',\n headers: {\n 'Content-Type': 'application/json',\n request_id: requestId,\n 'x-api-key': apiKey\n },\n body: jsondata\n })\n\n if (response.ok) {\n return await response.json()\n } else {\n const result = await response.text()\n throw new Error(`(${response.status}) ${result}`)\n }\n }\n\n async get(path: string, data: any = {}) {\n const { apiKey } = this.config\n\n const qs = Object.entries(data)\n .map(([k, v]) => `${k}=${encodeURIComponent(String(v))}`)\n .join('&')\n\n const fullPath: string = `${this.getBaseUrl()}${path}`\n const endpoint = `${fullPath}${qs ? '?' + qs : ''}`\n debug('endpoint', endpoint)\n\n const requestId: string = this.generateRequestId()\n\n const response: any = await fetch(endpoint, {\n method: 'get',\n headers: {\n 'Content-Type': 'application/json',\n request_id: requestId,\n 'x-api-key': apiKey\n }\n })\n\n if (response.ok) {\n return await response.json()\n } else {\n const result = await response.text()\n throw new Error(`(${response.status}) ${result}`)\n }\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ export declare const api: (target: Object, property: string, descriptor: TypedPropertyDescriptor<any>) => any;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.api = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const debug_1 = tslib_1.__importDefault(require("debug"));
6
+ const debug = (0, debug_1.default)('things-factory:integration-marketplace:store-api-decorator');
7
+ const integration_base_1 = require("@things-factory/integration-base");
8
+ const NOOP = v => v;
9
+ const api = (target, property, descriptor) => {
10
+ const method = descriptor.value;
11
+ descriptor.value = async function (store, request) {
12
+ const SellercraftAPI = this;
13
+ var { platform } = store;
14
+ var { action: platformAction, apis } = SellercraftAPI.getPlatform(platform);
15
+ var m = apis[method.name];
16
+ if (!m) {
17
+ throw Error(`Sellercraft doesn't have API ${method.name}`);
18
+ }
19
+ var { path, method: httpMethod = 'post', denormalize = NOOP, normalize = NOOP, action = platformAction } = m.apply(this, [request]);
20
+ var denormalized = await denormalize(request || {}, { store });
21
+ debug('request', denormalized);
22
+ try {
23
+ var response = await action.apply(this, [
24
+ { store, method: httpMethod, path, request: denormalized, platformAction }
25
+ ]);
26
+ (0, integration_base_1.createPayloadLog)(store.accountId, path, denormalized, response, request === null || request === void 0 ? void 0 : request.context);
27
+ debug('response', response);
28
+ return await normalize(response, { store });
29
+ }
30
+ catch (error) {
31
+ (0, integration_base_1.createPayloadLog)(store.accountId, path, denormalized, error, request === null || request === void 0 ? void 0 : request.context);
32
+ throw error;
33
+ }
34
+ };
35
+ return descriptor;
36
+ };
37
+ exports.api = api;
38
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../server/controllers/sellercraft-api/decorators.ts"],"names":[],"mappings":";;;;AAAA,0DAAyB;AACzB,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,4DAA4D,CAAC,CAAA;AAGjF,uEAAmE;AAEnE,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAEZ,MAAM,GAAG,GAAG,CAAC,MAAc,EAAE,QAAgB,EAAE,UAAwC,EAAO,EAAE;IACrG,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAA;IAE/B,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,KAAkB,EAAE,OAAO;QAC5D,MAAM,cAAc,GAAG,IAAI,CAAA;QAE3B,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;QAExB,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAE3E,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,KAAK,CAAC,gCAAgC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5D,CAAC;QAED,IAAI,EACF,IAAI,EACJ,MAAM,EAAE,UAAU,GAAG,MAAM,EAC3B,WAAW,GAAG,IAAI,EAClB,SAAS,GAAG,IAAI,EAChB,MAAM,GAAG,cAAc,EACxB,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;QAE5B,IAAI,YAAY,GAAG,MAAM,WAAW,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAC9D,KAAK,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAE9B,IAAI,CAAC;YACH,IAAI,QAAQ,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;gBACtC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE;aAC3E,CAAC,CAAA;YAEF,IAAA,mCAAgB,EAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAA;YAEjF,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YAE3B,OAAO,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,mCAAgB,EAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAA;YAC9E,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AA3CY,QAAA,GAAG,OA2Cf","sourcesContent":["import Debug from 'debug'\nconst debug = Debug('things-factory:integration-marketplace:store-api-decorator')\n\nimport { Sellercraft } from '../../service'\nimport { createPayloadLog } from '@things-factory/integration-base'\n\nconst NOOP = v => v\n\nexport const api = (target: Object, property: string, descriptor: TypedPropertyDescriptor<any>): any => {\n const method = descriptor.value\n\n descriptor.value = async function (store: Sellercraft, request) {\n const SellercraftAPI = this\n\n var { platform } = store\n\n var { action: platformAction, apis } = SellercraftAPI.getPlatform(platform)\n\n var m = apis[method.name]\n if (!m) {\n throw Error(`Sellercraft doesn't have API ${method.name}`)\n }\n\n var {\n path,\n method: httpMethod = 'post',\n denormalize = NOOP,\n normalize = NOOP,\n action = platformAction\n } = m.apply(this, [request])\n\n var denormalized = await denormalize(request || {}, { store })\n debug('request', denormalized)\n\n try {\n var response = await action.apply(this, [\n { store, method: httpMethod, path, request: denormalized, platformAction }\n ])\n\n createPayloadLog(store.accountId, path, denormalized, response, request?.context)\n\n debug('response', response)\n\n return await normalize(response, { store })\n } catch (error) {\n createPayloadLog(store.accountId, path, denormalized, error, request?.context)\n throw error\n }\n }\n\n return descriptor\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import { Sellercraft } from '../../service';
2
+ export declare class SellercraftAPI {
3
+ static platforms: {};
4
+ static registerPlatform(name: any, action: any, apis: any): void;
5
+ static getPlatform(name: any): any;
6
+ static getSellercraft(id: any): Promise<Sellercraft>;
7
+ static echo(sellercraft: any, req: any): any;
8
+ static addInboundOrder(sellercraft: any, req: any): any;
9
+ static fetchOrderDocument(sellercraft: any, req: any): any;
10
+ static initiateOrderDocument(sellercraft: any, req: any): any;
11
+ static initiateOrderShipment(sellercraft: any, req: any): any;
12
+ static packMarketplaceOrder(sellercraft: any, req: any): any;
13
+ static updateMarketplaceOrder(sellercraft: any, req: any): any;
14
+ static updateProduct(sellercraft: any, req: any): any;
15
+ }
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SellercraftAPI = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const shell_1 = require("@things-factory/shell");
6
+ const service_1 = require("../../service");
7
+ const decorators_1 = require("./decorators");
8
+ class SellercraftAPI {
9
+ static registerPlatform(name, action, apis) {
10
+ SellercraftAPI.platforms[name] = {
11
+ action,
12
+ apis
13
+ };
14
+ }
15
+ static getPlatform(name) {
16
+ return SellercraftAPI.platforms[name];
17
+ }
18
+ static async getSellercraft(id) {
19
+ const repository = (0, shell_1.getRepository)(service_1.Sellercraft);
20
+ return await repository.findOne({
21
+ where: { id },
22
+ relations: ['domain']
23
+ });
24
+ }
25
+ static echo(sellercraft, req) { }
26
+ static addInboundOrder(sellercraft, req) { }
27
+ static fetchOrderDocument(sellercraft, req) { }
28
+ static initiateOrderDocument(sellercraft, req) { }
29
+ static initiateOrderShipment(sellercraft, req) { }
30
+ static packMarketplaceOrder(sellercraft, req) { }
31
+ static updateMarketplaceOrder(sellercraft, req) { }
32
+ static updateProduct(sellercraft, req) { }
33
+ }
34
+ exports.SellercraftAPI = SellercraftAPI;
35
+ SellercraftAPI.platforms = {};
36
+ tslib_1.__decorate([
37
+ decorators_1.api,
38
+ tslib_1.__metadata("design:type", Function),
39
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
40
+ tslib_1.__metadata("design:returntype", Object)
41
+ ], SellercraftAPI, "echo", null);
42
+ tslib_1.__decorate([
43
+ decorators_1.api,
44
+ tslib_1.__metadata("design:type", Function),
45
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
46
+ tslib_1.__metadata("design:returntype", Object)
47
+ ], SellercraftAPI, "addInboundOrder", null);
48
+ tslib_1.__decorate([
49
+ decorators_1.api,
50
+ tslib_1.__metadata("design:type", Function),
51
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
52
+ tslib_1.__metadata("design:returntype", Object)
53
+ ], SellercraftAPI, "fetchOrderDocument", null);
54
+ tslib_1.__decorate([
55
+ decorators_1.api,
56
+ tslib_1.__metadata("design:type", Function),
57
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
58
+ tslib_1.__metadata("design:returntype", Object)
59
+ ], SellercraftAPI, "initiateOrderDocument", null);
60
+ tslib_1.__decorate([
61
+ decorators_1.api,
62
+ tslib_1.__metadata("design:type", Function),
63
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
64
+ tslib_1.__metadata("design:returntype", Object)
65
+ ], SellercraftAPI, "initiateOrderShipment", null);
66
+ tslib_1.__decorate([
67
+ decorators_1.api,
68
+ tslib_1.__metadata("design:type", Function),
69
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
70
+ tslib_1.__metadata("design:returntype", Object)
71
+ ], SellercraftAPI, "packMarketplaceOrder", null);
72
+ tslib_1.__decorate([
73
+ decorators_1.api,
74
+ tslib_1.__metadata("design:type", Function),
75
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
76
+ tslib_1.__metadata("design:returntype", Object)
77
+ ], SellercraftAPI, "updateMarketplaceOrder", null);
78
+ tslib_1.__decorate([
79
+ decorators_1.api,
80
+ tslib_1.__metadata("design:type", Function),
81
+ tslib_1.__metadata("design:paramtypes", [Object, Object]),
82
+ tslib_1.__metadata("design:returntype", Object)
83
+ ], SellercraftAPI, "updateProduct", null);
84
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/sellercraft-api/index.ts"],"names":[],"mappings":";;;;AAAA,iDAAqD;AAErD,2CAA2C;AAC3C,6CAAkC;AAElC,MAAa,cAAc;IAGzB,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI;QACxC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;YAC/B,MAAM;YACN,IAAI;SACL,CAAA;IACH,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAI;QACrB,OAAO,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;QAC5B,MAAM,UAAU,GAAG,IAAA,qBAAa,EAAC,qBAAW,CAAC,CAAA;QAC7C,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC;YAC9B,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAA;IACJ,CAAC;IAGM,AAAP,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAQ,CAAC;IAG9B,AAAP,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,GAAG,IAAQ,CAAC;IAGzC,AAAP,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,GAAG,IAAQ,CAAC;IAG5C,AAAP,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE,GAAG,IAAQ,CAAC;IAG/C,AAAP,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE,GAAG,IAAQ,CAAC;IAG/C,AAAP,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,GAAG,IAAQ,CAAC;IAG9C,AAAP,MAAM,CAAC,sBAAsB,CAAC,WAAW,EAAE,GAAG,IAAQ,CAAC;IAGhD,AAAP,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,IAAQ,CAAC;;AA5ChD,wCA6CC;AA5CQ,wBAAS,GAAG,EAAE,CAAA;AAsBd;IADN,gBAAG;;;;gCACiC;AAG9B;IADN,gBAAG;;;;2CAC4C;AAGzC;IADN,gBAAG;;;;8CAC+C;AAG5C;IADN,gBAAG;;;;iDACkD;AAG/C;IADN,gBAAG;;;;iDACkD;AAG/C;IADN,gBAAG;;;;gDACiD;AAG9C;IADN,gBAAG;;;;kDACmD;AAGhD;IADN,gBAAG;;;;yCAC0C","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { Sellercraft } from '../../service'\nimport { api } from './decorators'\n\nexport class SellercraftAPI {\n static platforms = {}\n\n static registerPlatform(name, action, apis) {\n SellercraftAPI.platforms[name] = {\n action,\n apis\n }\n }\n\n static getPlatform(name) {\n return SellercraftAPI.platforms[name]\n }\n\n static async getSellercraft(id) {\n const repository = getRepository(Sellercraft)\n return await repository.findOne({\n where: { id },\n relations: ['domain']\n })\n }\n\n @api\n static echo(sellercraft, req): any {}\n\n @api\n static addInboundOrder(sellercraft, req): any {}\n\n @api\n static fetchOrderDocument(sellercraft, req): any {}\n\n @api\n static initiateOrderDocument(sellercraft, req): any {}\n\n @api\n static initiateOrderShipment(sellercraft, req): any {}\n\n @api\n static packMarketplaceOrder(sellercraft, req): any {}\n\n @api\n static updateMarketplaceOrder(sellercraft, req): any {}\n\n @api\n static updateProduct(sellercraft, req): any {}\n}\n"]}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../server/controllers/sellercraft-api/types.ts"],"names":[],"mappings":"","sourcesContent":[""]}
@@ -0,0 +1,12 @@
1
+ export declare function echo(): {
2
+ path: string;
3
+ denormalize(req: any): any;
4
+ normalize(res: any): any;
5
+ action({ store, method, path, request, platformAction }: {
6
+ store: any;
7
+ method: any;
8
+ path: any;
9
+ request: any;
10
+ platformAction: any;
11
+ }): any;
12
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.echo = echo;
4
+ function echo() {
5
+ return {
6
+ path: '/echo',
7
+ denormalize(req) {
8
+ return Object.assign({}, req);
9
+ },
10
+ normalize(res) {
11
+ return Object.assign({}, res);
12
+ },
13
+ action({ store, method, path, request, platformAction }) {
14
+ return Object.assign({}, request);
15
+ }
16
+ };
17
+ }
18
+ //# sourceMappingURL=echo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"echo.js","sourceRoot":"","sources":["../../../../server/controllers/sellercraft-channel-integration/apis/echo.ts"],"names":[],"mappings":";;AAAA,oBAaC;AAbD,SAAgB,IAAI;IAClB,OAAO;QACL,IAAI,EAAE,OAAO;QACb,WAAW,CAAC,GAAG;YACb,yBAAY,GAAG,EAAE;QACnB,CAAC;QACD,SAAS,CAAC,GAAG;YACX,yBAAY,GAAG,EAAE;QACnB,CAAC;QACD,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE;YACrD,yBAAY,OAAO,EAAE;QACvB,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["export function echo() {\n return {\n path: '/echo',\n denormalize(req) {\n return { ...req }\n },\n normalize(res) {\n return { ...res }\n },\n action({ store, method, path, request, platformAction }) {\n return { ...request }\n }\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ export * from './echo';
2
+ export * from './ingest-channel-categories';
3
+ export * from './ingest-channel-category-attributes';
4
+ export * from './ingest-channel-order-package';
5
+ export * from './ingest-channel-order';
6
+ export * from './ingest-channel-product';
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./echo"), exports);
5
+ tslib_1.__exportStar(require("./ingest-channel-categories"), exports);
6
+ tslib_1.__exportStar(require("./ingest-channel-category-attributes"), exports);
7
+ tslib_1.__exportStar(require("./ingest-channel-order-package"), exports);
8
+ tslib_1.__exportStar(require("./ingest-channel-order"), exports);
9
+ tslib_1.__exportStar(require("./ingest-channel-product"), exports);
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/controllers/sellercraft-channel-integration/apis/index.ts"],"names":[],"mappings":";;;AAAA,iDAAsB;AACtB,sEAA2C;AAC3C,+EAAoD;AACpD,yEAA8C;AAC9C,iEAAsC;AACtC,mEAAwC","sourcesContent":["export * from './echo'\nexport * from './ingest-channel-categories'\nexport * from './ingest-channel-category-attributes'\nexport * from './ingest-channel-order-package'\nexport * from './ingest-channel-order'\nexport * from './ingest-channel-product'\n"]}
@@ -0,0 +1,8 @@
1
+ export declare function ingestChannelCategories(): {
2
+ method: string;
3
+ path: string;
4
+ denormalize(req: any): {
5
+ payload: any[];
6
+ };
7
+ normalize(res: any): any;
8
+ };
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ /* https://docs.sellercraft.co/docs/api-integrations/b3A6MTY4NjQxODU-initiate-order-shipment */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ingestChannelCategories = ingestChannelCategories;
5
+ function ingestChannelCategories() {
6
+ return {
7
+ method: 'post',
8
+ path: '/channel/ingest/category',
9
+ denormalize(req) {
10
+ const { categories } = req;
11
+ let newCategories = mapCategories(categories);
12
+ return {
13
+ payload: [...newCategories]
14
+ };
15
+ },
16
+ normalize(res) {
17
+ return res;
18
+ }
19
+ };
20
+ }
21
+ function mapCategories(categories) {
22
+ if (!categories)
23
+ return null;
24
+ categories = categories.map(category => {
25
+ let children_categories = mapCategories(category.childrenCategories);
26
+ return {
27
+ native_category_id: category.categoryId.toString(),
28
+ channel_code: category.channelCode,
29
+ channel_country: category.countryCode,
30
+ category_name: category.categoryName,
31
+ is_leaf: children_categories.length == 0 ? true : false,
32
+ is_active: category.isActive,
33
+ children_categories
34
+ };
35
+ });
36
+ return categories;
37
+ }
38
+ //# sourceMappingURL=ingest-channel-categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest-channel-categories.js","sourceRoot":"","sources":["../../../../server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.ts"],"names":[],"mappings":";AAAA,+FAA+F;;AAE/F,0DAiBC;AAjBD,SAAgB,uBAAuB;IACrC,OAAO;QACL,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,0BAA0B;QAChC,WAAW,CAAC,GAAG;YACb,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAA;YAE1B,IAAI,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;YAE7C,OAAO;gBACL,OAAO,EAAE,CAAC,GAAG,aAAa,CAAC;aAC5B,CAAA;QACH,CAAC;QACD,SAAS,CAAC,GAAG;YACX,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,UAAU;IAC/B,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAA;IAC5B,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;QACrC,IAAI,mBAAmB,GAAG,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;QACpE,OAAO;YACL,kBAAkB,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE;YAClD,YAAY,EAAE,QAAQ,CAAC,WAAW;YAClC,eAAe,EAAE,QAAQ,CAAC,WAAW;YACrC,aAAa,EAAE,QAAQ,CAAC,YAAY;YACpC,OAAO,EAAE,mBAAmB,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YACvD,SAAS,EAAE,QAAQ,CAAC,QAAQ;YAC5B,mBAAmB;SACpB,CAAA;IACH,CAAC,CAAC,CAAA;IACF,OAAO,UAAU,CAAA;AACnB,CAAC","sourcesContent":["/* https://docs.sellercraft.co/docs/api-integrations/b3A6MTY4NjQxODU-initiate-order-shipment */\n\nexport function ingestChannelCategories() {\n return {\n method: 'post',\n path: '/channel/ingest/category',\n denormalize(req) {\n const { categories } = req\n\n let newCategories = mapCategories(categories)\n\n return {\n payload: [...newCategories]\n }\n },\n normalize(res) {\n return res\n }\n }\n}\n\nfunction mapCategories(categories) {\n if (!categories) return null\n categories = categories.map(category => {\n let children_categories = mapCategories(category.childrenCategories)\n return {\n native_category_id: category.categoryId.toString(),\n channel_code: category.channelCode,\n channel_country: category.countryCode,\n category_name: category.categoryName,\n is_leaf: children_categories.length == 0 ? true : false,\n is_active: category.isActive,\n children_categories\n }\n })\n return categories\n}\n"]}
@@ -0,0 +1,11 @@
1
+ export declare function ingestChannelCategoryAttributes(): {
2
+ method: string;
3
+ path: string;
4
+ denormalize(req: any): {
5
+ payload: {
6
+ channel_attribute_keys: any;
7
+ sc_attribute_keys: any;
8
+ };
9
+ };
10
+ normalize(res: any): any;
11
+ };
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ /* https://docs.sellercraft.co/docs/api-integrations/b3A6MjQzODUxMTE-ingest-channel-category-attributes */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ingestChannelCategoryAttributes = ingestChannelCategoryAttributes;
5
+ function ingestChannelCategoryAttributes() {
6
+ return {
7
+ method: 'post',
8
+ path: '/channel/ingest/category/attribute',
9
+ denormalize(req) {
10
+ let { channelAttributeKeys, scAttributeKeys } = req;
11
+ let channel_attribute_keys = channelAttributeKeys.map(e => {
12
+ const { channelCode: channel_code, channelCountry: channel_country, nativeCategoryId: native_category_id, attributeKey: attribute_key, valueType: value_type, valueOptions: value_options, displayName: display_name, isCore: is_core, isSearchProp: is_search_prop, isOptional: is_optional } = e;
13
+ return {
14
+ channel_code,
15
+ channel_country,
16
+ native_category_id,
17
+ attribute_key,
18
+ value_type,
19
+ value_options,
20
+ display_name,
21
+ is_core,
22
+ is_search_prop,
23
+ is_optional
24
+ };
25
+ });
26
+ let sc_attribute_keys = scAttributeKeys.map(e => {
27
+ const { channelCode: channel_code, channelCountry: channel_country, attributeKey: attribute_key, displayName: display_name } = e;
28
+ return {
29
+ channel_code,
30
+ channel_country,
31
+ attribute_key,
32
+ display_name
33
+ };
34
+ });
35
+ return {
36
+ payload: {
37
+ channel_attribute_keys,
38
+ sc_attribute_keys
39
+ }
40
+ };
41
+ },
42
+ normalize(res) {
43
+ return res;
44
+ }
45
+ };
46
+ }
47
+ //# sourceMappingURL=ingest-channel-category-attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest-channel-category-attributes.js","sourceRoot":"","sources":["../../../../server/controllers/sellercraft-channel-integration/apis/ingest-channel-category-attributes.ts"],"names":[],"mappings":";AAAA,0GAA0G;;AAE1G,0EA8DC;AA9DD,SAAgB,+BAA+B;IAC7C,OAAO;QACL,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,oCAAoC;QAC1C,WAAW,CAAC,GAAG;YACb,IAAI,EAAE,oBAAoB,EAAE,eAAe,EAAE,GAAG,GAAG,CAAA;YAEnD,IAAI,sBAAsB,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACxD,MAAM,EACJ,WAAW,EAAE,YAAY,EACzB,cAAc,EAAE,eAAe,EAC/B,gBAAgB,EAAE,kBAAkB,EACpC,YAAY,EAAE,aAAa,EAC3B,SAAS,EAAE,UAAU,EACrB,YAAY,EAAE,aAAa,EAC3B,WAAW,EAAE,YAAY,EACzB,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,cAAc,EAC5B,UAAU,EAAE,WAAW,EACxB,GAAG,CAAC,CAAA;gBAEL,OAAO;oBACL,YAAY;oBACZ,eAAe;oBACf,kBAAkB;oBAClB,aAAa;oBACb,UAAU;oBACV,aAAa;oBACb,YAAY;oBACZ,OAAO;oBACP,cAAc;oBACd,WAAW;iBACZ,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,IAAI,iBAAiB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC9C,MAAM,EACJ,WAAW,EAAE,YAAY,EACzB,cAAc,EAAE,eAAe,EAC/B,YAAY,EAAE,aAAa,EAC3B,WAAW,EAAE,YAAY,EAC1B,GAAG,CAAC,CAAA;gBAEL,OAAO;oBACL,YAAY;oBACZ,eAAe;oBACf,aAAa;oBACb,YAAY;iBACb,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,OAAO;gBACL,OAAO,EAAE;oBACP,sBAAsB;oBACtB,iBAAiB;iBAClB;aACF,CAAA;QACH,CAAC;QACD,SAAS,CAAC,GAAG;YACX,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["/* https://docs.sellercraft.co/docs/api-integrations/b3A6MjQzODUxMTE-ingest-channel-category-attributes */\n\nexport function ingestChannelCategoryAttributes() {\n return {\n method: 'post',\n path: '/channel/ingest/category/attribute',\n denormalize(req) {\n let { channelAttributeKeys, scAttributeKeys } = req\n\n let channel_attribute_keys = channelAttributeKeys.map(e => {\n const {\n channelCode: channel_code,\n channelCountry: channel_country,\n nativeCategoryId: native_category_id,\n attributeKey: attribute_key,\n valueType: value_type,\n valueOptions: value_options,\n displayName: display_name,\n isCore: is_core,\n isSearchProp: is_search_prop,\n isOptional: is_optional\n } = e\n\n return {\n channel_code,\n channel_country,\n native_category_id,\n attribute_key,\n value_type,\n value_options,\n display_name,\n is_core,\n is_search_prop,\n is_optional\n }\n })\n\n let sc_attribute_keys = scAttributeKeys.map(e => {\n const {\n channelCode: channel_code,\n channelCountry: channel_country,\n attributeKey: attribute_key,\n displayName: display_name\n } = e\n\n return {\n channel_code,\n channel_country,\n attribute_key,\n display_name\n }\n })\n\n return {\n payload: {\n channel_attribute_keys,\n sc_attribute_keys\n }\n }\n },\n normalize(res) {\n return res\n }\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ export declare function ingestChannelOrderPackage(): {
2
+ method: string;
3
+ path: string;
4
+ denormalize(req: any): {
5
+ payload: any;
6
+ };
7
+ normalize(res: any): any;
8
+ };
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /* https://docs.sellercraft.co/docs/api-integrations/b3A6MjQzODUxMTQ-ingest-channel-order-package */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ingestChannelOrderPackage = ingestChannelOrderPackage;
5
+ function ingestChannelOrderPackage() {
6
+ return {
7
+ method: 'post',
8
+ path: '/channel/ingest/order/package',
9
+ denormalize(req) {
10
+ let { channelShopId: channel_shop_id, nativeOrderId: native_order_id, nativePackageId: native_package_id, shippingTrackingCode: shipping_tracking_code, shippingTypeValue: shipping_type_value, warehouseCode: warehouse_code, shipper, documents, shipperLastMile: shipper_last_mile, orderItemIds: order_item_ids } = req;
11
+ documents = documents.map(e => {
12
+ const { fileTypeValue: file_type_value, mimeType: mime_type, file } = e;
13
+ return {
14
+ file_type_value,
15
+ mime_type,
16
+ file
17
+ };
18
+ });
19
+ shipper = {
20
+ is_cod_supported: shipper.isCodSupported,
21
+ name: shipper.name
22
+ };
23
+ shipper_last_mile = {
24
+ is_cod_supported: shipper_last_mile.isCodSupported,
25
+ name: shipper_last_mile.name
26
+ };
27
+ let newOrderPackage = {
28
+ channel_shop_id,
29
+ native_order_id,
30
+ native_package_id: native_package_id.toString(),
31
+ shipping_tracking_code,
32
+ shipping_type_value,
33
+ warehouse_code,
34
+ shipper,
35
+ documents,
36
+ shipper_last_mile,
37
+ order_item_ids
38
+ };
39
+ return {
40
+ payload: Object.assign({}, newOrderPackage)
41
+ };
42
+ },
43
+ normalize(res) {
44
+ return res;
45
+ }
46
+ };
47
+ }
48
+ //# sourceMappingURL=ingest-channel-order-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingest-channel-order-package.js","sourceRoot":"","sources":["../../../../server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.ts"],"names":[],"mappings":";AAAA,oGAAoG;;AAEpG,8DA2DC;AA3DD,SAAgB,yBAAyB;IACvC,OAAO;QACL,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,+BAA+B;QACrC,WAAW,CAAC,GAAG;YACb,IAAI,EACF,aAAa,EAAE,eAAe,EAC9B,aAAa,EAAE,eAAe,EAC9B,eAAe,EAAE,iBAAiB,EAClC,oBAAoB,EAAE,sBAAsB,EAC5C,iBAAiB,EAAE,mBAAmB,EACtC,aAAa,EAAE,cAAc,EAC7B,OAAO,EACP,SAAS,EACT,eAAe,EAAE,iBAAiB,EAClC,YAAY,EAAE,cAAc,EAC7B,GAAG,GAAG,CAAA;YAEP,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC5B,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;gBAEvE,OAAO;oBACL,eAAe;oBACf,SAAS;oBACT,IAAI;iBACL,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,OAAO,GAAG;gBACR,gBAAgB,EAAE,OAAO,CAAC,cAAc;gBACxC,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAA;YAED,iBAAiB,GAAG;gBAClB,gBAAgB,EAAE,iBAAiB,CAAC,cAAc;gBAClD,IAAI,EAAE,iBAAiB,CAAC,IAAI;aAC7B,CAAA;YAED,IAAI,eAAe,GAAQ;gBACzB,eAAe;gBACf,eAAe;gBACf,iBAAiB,EAAE,iBAAiB,CAAC,QAAQ,EAAE;gBAC/C,sBAAsB;gBACtB,mBAAmB;gBACnB,cAAc;gBACd,OAAO;gBACP,SAAS;gBACT,iBAAiB;gBACjB,cAAc;aACf,CAAA;YAED,OAAO;gBACL,OAAO,oBAAO,eAAe,CAAE;aAChC,CAAA;QACH,CAAC;QACD,SAAS,CAAC,GAAG;YACX,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["/* https://docs.sellercraft.co/docs/api-integrations/b3A6MjQzODUxMTQ-ingest-channel-order-package */\n\nexport function ingestChannelOrderPackage() {\n return {\n method: 'post',\n path: '/channel/ingest/order/package',\n denormalize(req) {\n let {\n channelShopId: channel_shop_id,\n nativeOrderId: native_order_id,\n nativePackageId: native_package_id,\n shippingTrackingCode: shipping_tracking_code,\n shippingTypeValue: shipping_type_value,\n warehouseCode: warehouse_code,\n shipper,\n documents,\n shipperLastMile: shipper_last_mile,\n orderItemIds: order_item_ids\n } = req\n\n documents = documents.map(e => {\n const { fileTypeValue: file_type_value, mimeType: mime_type, file } = e\n\n return {\n file_type_value,\n mime_type,\n file\n }\n })\n\n shipper = {\n is_cod_supported: shipper.isCodSupported,\n name: shipper.name\n }\n\n shipper_last_mile = {\n is_cod_supported: shipper_last_mile.isCodSupported,\n name: shipper_last_mile.name\n }\n\n let newOrderPackage: any = {\n channel_shop_id,\n native_order_id,\n native_package_id: native_package_id.toString(),\n shipping_tracking_code,\n shipping_type_value,\n warehouse_code,\n shipper,\n documents,\n shipper_last_mile,\n order_item_ids\n }\n\n return {\n payload: { ...newOrderPackage }\n }\n },\n normalize(res) {\n return res\n }\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ export declare function ingestChannelOrder(): {
2
+ method: string;
3
+ path: string;
4
+ denormalize(req: any): {
5
+ payload: any[];
6
+ };
7
+ normalize(res: any): any;
8
+ };
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ /* https://docs.sellercraft.co/docs/api-integrations/b3A6MjQzODQ4OTg-ingest-channel-order */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ingestChannelOrder = ingestChannelOrder;
5
+ const constants_1 = require("../../../constants");
6
+ function ingestChannelOrder() {
7
+ return {
8
+ method: 'post',
9
+ path: '/channel/ingest/order',
10
+ denormalize(req) {
11
+ const { orders } = req;
12
+ let newOrders = orders.map(order => {
13
+ return {
14
+ organisation_id: order.organisationId,
15
+ channel_shop_id: order.channelShopId,
16
+ native_order_id: order.id.toString(),
17
+ native_order_display_id: order === null || order === void 0 ? void 0 : order.sellercraftDisplayOrderNo,
18
+ ordered_at_date: new Date(order.createdAt).toISOString().slice(0, -5) + 'Z',
19
+ ordered_at_time: new Date(order.createdAt).toISOString().slice(0, -5) + 'Z',
20
+ updated_at_date: new Date(order.updatedAt).toISOString().slice(0, -5) + 'Z',
21
+ updated_at_time: new Date(order.updatedAt).toISOString().slice(0, -5) + 'Z',
22
+ customer_first_name: order.custFirstName,
23
+ customer_last_name: order.custLastName,
24
+ charges: order.charges.map(charge => {
25
+ return {
26
+ charge_type_value: charge.name,
27
+ amount_gross: parseFloat(charge.grossAmount) || 0,
28
+ amount_nett: parseFloat(charge.nettAmount) || 0
29
+ };
30
+ }),
31
+ address_shipping: (order === null || order === void 0 ? void 0 : order.shipAddress1) ? {
32
+ first_name: order.shipFirstName,
33
+ last_name: order.shipLastName,
34
+ line_1: order.shipAddress1,
35
+ line_2: order.shipAddress2,
36
+ line_3: order.shipAddress3,
37
+ line_4: order.shipAddress4,
38
+ line_5: order.shipAddress5,
39
+ city: order.shipCity,
40
+ postal_code: order.shipPostalCode,
41
+ country: order.shipCountry,
42
+ phone_1: order.shipPhone1,
43
+ phone_2: order.shipPhone2
44
+ } : null,
45
+ address_billing: {
46
+ first_name: order.billFirstName,
47
+ last_name: order.billLastName,
48
+ line_1: order.billAddress1,
49
+ line_2: order.billAddress2,
50
+ line_3: order.billAddress3,
51
+ line_4: order.billAddress4,
52
+ line_5: order.billAddress5,
53
+ city: order.billCity,
54
+ postal_code: order.billPostalCode,
55
+ country: order.billCountry,
56
+ phone_1: order.billPhone1,
57
+ phone_2: order.billPhone2
58
+ },
59
+ order_items: order.mappedOrderItems.map(orderItem => {
60
+ return {
61
+ native_item_id: orderItem.id.toString(),
62
+ native_variant_id: orderItem.variationId.toString(),
63
+ currency_code: orderItem.currency,
64
+ ordered_at_date: new Date(order.createdAt).toISOString().slice(0, -5) + 'Z',
65
+ ordered_at_time: new Date(order.createdAt).toISOString().slice(0, -5) + 'Z',
66
+ updated_at_date: new Date(order.updatedAt).toISOString().slice(0, -5) + 'Z',
67
+ updated_at_time: new Date(order.updatedAt).toISOString().slice(0, -5) + 'Z',
68
+ sla_expires_at: (orderItem === null || orderItem === void 0 ? void 0 : orderItem.slaExpiresAt) ? new Date(orderItem.slaExpiresAt).toISOString() : null,
69
+ charges: orderItem.charges.map(charge => {
70
+ return {
71
+ charge_type_value: charge.name,
72
+ amount_gross: parseFloat(charge.grossAmount) || 0,
73
+ amount_nett: parseFloat(charge.nettAmount) || 0
74
+ };
75
+ }),
76
+ order_status_value: constants_1.ORDER_STATUS[`${order.status}`]
77
+ };
78
+ }),
79
+ seller_logistics: order === null || order === void 0 ? void 0 : order.isSOF,
80
+ shipping_type: (order === null || order === void 0 ? void 0 : order.shipAddress1) ? 'DROP_SHIPPING' : 'SELF_PICKUP'
81
+ };
82
+ });
83
+ return {
84
+ payload: [...newOrders]
85
+ };
86
+ },
87
+ normalize(res) {
88
+ return res;
89
+ }
90
+ };
91
+ }
92
+ //# sourceMappingURL=ingest-channel-order.js.map