@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.
- package/dist-server/constants/index.d.ts +2 -0
- package/dist-server/constants/index.js +6 -0
- package/dist-server/constants/index.js.map +1 -0
- package/dist-server/constants/order-status-mapping.d.ts +27 -0
- package/dist-server/constants/order-status-mapping.js +31 -0
- package/dist-server/constants/order-status-mapping.js.map +1 -0
- package/dist-server/constants/platform.d.ts +6 -0
- package/dist-server/constants/platform.js +10 -0
- package/dist-server/constants/platform.js.map +1 -0
- package/dist-server/controllers/index.d.ts +4 -0
- package/dist-server/controllers/index.js +8 -0
- package/dist-server/controllers/index.js.map +1 -0
- package/dist-server/controllers/sellercraft/apis/add-inbound-order.d.ts +8 -0
- package/dist-server/controllers/sellercraft/apis/add-inbound-order.js +46 -0
- package/dist-server/controllers/sellercraft/apis/add-inbound-order.js.map +1 -0
- package/dist-server/controllers/sellercraft/apis/echo.d.ts +12 -0
- package/dist-server/controllers/sellercraft/apis/echo.js +18 -0
- package/dist-server/controllers/sellercraft/apis/echo.js.map +1 -0
- package/dist-server/controllers/sellercraft/apis/fetch-order-document.d.ts +16 -0
- package/dist-server/controllers/sellercraft/apis/fetch-order-document.js +21 -0
- package/dist-server/controllers/sellercraft/apis/fetch-order-document.js.map +1 -0
- package/dist-server/controllers/sellercraft/apis/index.d.ts +8 -0
- package/dist-server/controllers/sellercraft/apis/index.js +12 -0
- package/dist-server/controllers/sellercraft/apis/index.js.map +1 -0
- package/dist-server/controllers/sellercraft/apis/initiate-order-document.d.ts +12 -0
- package/dist-server/controllers/sellercraft/apis/initiate-order-document.js +20 -0
- package/dist-server/controllers/sellercraft/apis/initiate-order-document.js.map +1 -0
- package/dist-server/controllers/sellercraft/apis/initiate-order-shipment.d.ts +17 -0
- package/dist-server/controllers/sellercraft/apis/initiate-order-shipment.js +26 -0
- package/dist-server/controllers/sellercraft/apis/initiate-order-shipment.js.map +1 -0
- package/dist-server/controllers/sellercraft/apis/pack-marketplace-order.d.ts +12 -0
- package/dist-server/controllers/sellercraft/apis/pack-marketplace-order.js +35 -0
- package/dist-server/controllers/sellercraft/apis/pack-marketplace-order.js.map +1 -0
- package/dist-server/controllers/sellercraft/apis/update-marketplace-order.d.ts +6 -0
- package/dist-server/controllers/sellercraft/apis/update-marketplace-order.js +17 -0
- package/dist-server/controllers/sellercraft/apis/update-marketplace-order.js.map +1 -0
- package/dist-server/controllers/sellercraft/apis/update-product.d.ts +11 -0
- package/dist-server/controllers/sellercraft/apis/update-product.js +23 -0
- package/dist-server/controllers/sellercraft/apis/update-product.js.map +1 -0
- package/dist-server/controllers/sellercraft/index.d.ts +1 -0
- package/dist-server/controllers/sellercraft/index.js +9 -0
- package/dist-server/controllers/sellercraft/index.js.map +1 -0
- package/dist-server/controllers/sellercraft/platform-action.d.ts +5 -0
- package/dist-server/controllers/sellercraft/platform-action.js +33 -0
- package/dist-server/controllers/sellercraft/platform-action.js.map +1 -0
- package/dist-server/controllers/sellercraft/sellercraft.d.ts +12 -0
- package/dist-server/controllers/sellercraft/sellercraft.js +91 -0
- package/dist-server/controllers/sellercraft/sellercraft.js.map +1 -0
- package/dist-server/controllers/sellercraft-api/decorators.d.ts +1 -0
- package/dist-server/controllers/sellercraft-api/decorators.js +38 -0
- package/dist-server/controllers/sellercraft-api/decorators.js.map +1 -0
- package/dist-server/controllers/sellercraft-api/index.d.ts +15 -0
- package/dist-server/controllers/sellercraft-api/index.js +84 -0
- package/dist-server/controllers/sellercraft-api/index.js.map +1 -0
- package/dist-server/controllers/sellercraft-api/types.d.ts +0 -0
- package/dist-server/controllers/sellercraft-api/types.js +1 -0
- package/dist-server/controllers/sellercraft-api/types.js.map +1 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/echo.d.ts +12 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/echo.js +18 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/echo.js.map +1 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/index.d.ts +6 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/index.js +10 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/index.js.map +1 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.d.ts +8 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.js +38 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.js.map +1 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-category-attributes.d.ts +11 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-category-attributes.js +47 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-category-attributes.js.map +1 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.d.ts +8 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.js +48 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.js.map +1 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order.d.ts +8 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order.js +92 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order.js.map +1 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-product.d.ts +8 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-product.js +90 -0
- package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-product.js.map +1 -0
- package/dist-server/controllers/sellercraft-channel-integration/index.d.ts +1 -0
- package/dist-server/controllers/sellercraft-channel-integration/index.js +9 -0
- package/dist-server/controllers/sellercraft-channel-integration/index.js.map +1 -0
- package/dist-server/controllers/sellercraft-channel-integration/platform-action.d.ts +5 -0
- package/dist-server/controllers/sellercraft-channel-integration/platform-action.js +33 -0
- package/dist-server/controllers/sellercraft-channel-integration/platform-action.js.map +1 -0
- package/dist-server/controllers/sellercraft-channel-integration/sellercraft-channel-integration.d.ts +12 -0
- package/dist-server/controllers/sellercraft-channel-integration/sellercraft-channel-integration.js +99 -0
- package/dist-server/controllers/sellercraft-channel-integration/sellercraft-channel-integration.js.map +1 -0
- package/dist-server/controllers/sellercraft-channel-integration-api/decorators.d.ts +1 -0
- package/dist-server/controllers/sellercraft-channel-integration-api/decorators.js +30 -0
- package/dist-server/controllers/sellercraft-channel-integration-api/decorators.js.map +1 -0
- package/dist-server/controllers/sellercraft-channel-integration-api/index.d.ts +13 -0
- package/dist-server/controllers/sellercraft-channel-integration-api/index.js +70 -0
- package/dist-server/controllers/sellercraft-channel-integration-api/index.js.map +1 -0
- package/dist-server/controllers/sellercraft-channel-integration-api/types.d.ts +0 -0
- package/dist-server/controllers/sellercraft-channel-integration-api/types.js +1 -0
- package/dist-server/controllers/sellercraft-channel-integration-api/types.js.map +1 -0
- package/dist-server/index.d.ts +6 -0
- package/dist-server/index.js +10 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/middlewares/index.d.ts +1 -0
- package/dist-server/middlewares/index.js +7 -0
- package/dist-server/middlewares/index.js.map +1 -0
- package/dist-server/migrations/index.d.ts +1 -0
- package/dist-server/migrations/index.js +12 -0
- package/dist-server/migrations/index.js.map +1 -0
- package/dist-server/routers/sellercraft-router.d.ts +1 -0
- package/dist-server/routers/sellercraft-router.js +284 -0
- package/dist-server/routers/sellercraft-router.js.map +1 -0
- package/dist-server/routes.d.ts +1 -0
- package/dist-server/routes.js +29 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/service/index.d.ts +7 -0
- package/dist-server/service/index.js +23 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/service/marketplace-channel/index.d.ts +5 -0
- package/dist-server/service/marketplace-channel/index.js +9 -0
- package/dist-server/service/marketplace-channel/index.js.map +1 -0
- package/dist-server/service/marketplace-channel/marketplace-channel-order-mutation.d.ts +3 -0
- package/dist-server/service/marketplace-channel/marketplace-channel-order-mutation.js +391 -0
- package/dist-server/service/marketplace-channel/marketplace-channel-order-mutation.js.map +1 -0
- package/dist-server/service/marketplace-channel/marketplace-channel-product-mutation.d.ts +3 -0
- package/dist-server/service/marketplace-channel/marketplace-channel-product-mutation.js +244 -0
- package/dist-server/service/marketplace-channel/marketplace-channel-product-mutation.js.map +1 -0
- package/dist-server/service/marketplace-channel/marketplace-channel.d.ts +18 -0
- package/dist-server/service/marketplace-channel/marketplace-channel.js +84 -0
- package/dist-server/service/marketplace-channel/marketplace-channel.js.map +1 -0
- package/dist-server/service/sellercraft/index.d.ts +5 -0
- package/dist-server/service/sellercraft/index.js +9 -0
- package/dist-server/service/sellercraft/index.js.map +1 -0
- package/dist-server/service/sellercraft/sellercraft-mutation.d.ts +9 -0
- package/dist-server/service/sellercraft/sellercraft-mutation.js +111 -0
- package/dist-server/service/sellercraft/sellercraft-mutation.js.map +1 -0
- package/dist-server/service/sellercraft/sellercraft-query.d.ts +11 -0
- package/dist-server/service/sellercraft/sellercraft-query.js +71 -0
- package/dist-server/service/sellercraft/sellercraft-query.js.map +1 -0
- package/dist-server/service/sellercraft/sellercraft-type.d.ts +21 -0
- package/dist-server/service/sellercraft/sellercraft-type.js +81 -0
- package/dist-server/service/sellercraft/sellercraft-type.js.map +1 -0
- package/dist-server/service/sellercraft/sellercraft.d.ts +27 -0
- package/dist-server/service/sellercraft/sellercraft.js +107 -0
- package/dist-server/service/sellercraft/sellercraft.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -0
- package/dist-server/utils/tokencraft-util.d.ts +2 -0
- package/dist-server/utils/tokencraft-util.js +64 -0
- package/dist-server/utils/tokencraft-util.js.map +1 -0
- 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"]}
|
File without changes
|
@@ -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,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"]}
|
package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-categories.js
ADDED
@@ -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,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"]}
|
package/dist-server/controllers/sellercraft-channel-integration/apis/ingest-channel-order-package.js
ADDED
@@ -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,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
|