@things-factory/integration-sftp 5.0.0-alpha.4 → 5.0.0-alpha.40

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 (29) hide show
  1. package/dist-server/controllers/herbalife/apis/create-serial-number.js +46 -0
  2. package/dist-server/controllers/herbalife/apis/create-serial-number.js.map +1 -0
  3. package/dist-server/controllers/herbalife/apis/create-shipment.js +59 -3
  4. package/dist-server/controllers/herbalife/apis/create-shipment.js.map +1 -1
  5. package/dist-server/controllers/herbalife/apis/index.js +1 -0
  6. package/dist-server/controllers/herbalife/apis/index.js.map +1 -1
  7. package/dist-server/controllers/herbalife/herbalife.js +15 -62
  8. package/dist-server/controllers/herbalife/herbalife.js.map +1 -1
  9. package/dist-server/controllers/sftp-api/index.js +7 -0
  10. package/dist-server/controllers/sftp-api/index.js.map +1 -1
  11. package/dist-server/service/sftp/sftp-mutation.js +56 -39
  12. package/dist-server/service/sftp/sftp-mutation.js.map +1 -1
  13. package/dist-server/sftp-const.js +5 -1
  14. package/dist-server/sftp-const.js.map +1 -1
  15. package/dist-server/util/generate-files.js +30 -0
  16. package/dist-server/util/generate-files.js.map +1 -0
  17. package/dist-server/util/index.js +1 -1
  18. package/dist-server/util/index.js.map +1 -1
  19. package/package.json +7 -7
  20. package/server/controllers/herbalife/apis/create-serial-number.ts +50 -0
  21. package/server/controllers/herbalife/apis/create-shipment.ts +68 -3
  22. package/server/controllers/herbalife/apis/index.ts +1 -0
  23. package/server/controllers/herbalife/herbalife.ts +18 -71
  24. package/server/controllers/sftp-api/index.ts +3 -0
  25. package/server/service/sftp/sftp-mutation.ts +1 -2
  26. package/server/sftp-const.ts +4 -0
  27. package/server/util/generate-files.ts +33 -0
  28. package/server/util/index.ts +1 -1
  29. package/server/util/generate-file.ts +0 -30
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSerialNumber = void 0;
4
+ const sftp_const_1 = require("../../../sftp-const");
5
+ function createSerialNumber() {
6
+ return {
7
+ method: 'post',
8
+ path: '{folderPath}/{folderType}/sn/data',
9
+ denormalize(req) {
10
+ let { releaseGood, inventoryItems, sftp } = req;
11
+ let { folderPath, platform } = sftp;
12
+ const folderType = sftp.isDevelopment ? `dev` : `prd`;
13
+ const backupPath = `${sftp_const_1.BACKUPPATH}${platform}/${folderType}`;
14
+ let responseFilePattern = JSON.parse(sftp.responseFilePattern);
15
+ const { snSuffix, fileExtension, snRunningNumberDigit, snSequence } = responseFilePattern;
16
+ let newSeq = parseFloat(snSequence) + 1;
17
+ let newSequence = newSeq.toString().padStart(snRunningNumberDigit, '0');
18
+ let newResponseFilePattern = JSON.stringify(Object.assign(Object.assign({}, responseFilePattern), { snSequence: newSeq.toString() }));
19
+ sftp = Object.assign(Object.assign({}, sftp), { responseFilePattern: newResponseFilePattern });
20
+ const today = new Date();
21
+ const year = today.getFullYear().toString();
22
+ const month = (today.getMonth() + 1).toString().padStart(2, '0');
23
+ const day = today.getDate().toString().padStart(2, '0');
24
+ const newDate = day + month + year;
25
+ let title = snSuffix ? snSuffix : ``;
26
+ title += `_` + newDate;
27
+ title += `_` + newSequence;
28
+ title += fileExtension ? `.` + fileExtension : ``;
29
+ let content = '';
30
+ const orderNo = releaseGood.refNo;
31
+ for (let i = 0; i < inventoryItems.length; i++) {
32
+ let serialNumber = inventoryItems[i].serialNumber;
33
+ content += orderNo + '|' + serialNumber + '\n';
34
+ }
35
+ return {
36
+ resource: { folderPath, folderType },
37
+ payload: { title, content, sftp, backupPath }
38
+ };
39
+ },
40
+ normalize(res) {
41
+ return res;
42
+ }
43
+ };
44
+ }
45
+ exports.createSerialNumber = createSerialNumber;
46
+ //# sourceMappingURL=create-serial-number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-serial-number.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/create-serial-number.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAEhD,SAAgB,kBAAkB;IAChC,OAAO;QACL,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,mCAAmC;QACzC,WAAW,CAAC,GAAG;YACb,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;YAC/C,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;YACnC,MAAM,UAAU,GAAW,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;YAC7D,MAAM,UAAU,GAAW,GAAG,uBAAU,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAA;YAEnE,IAAI,mBAAmB,GAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;YACnE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAA;YACzF,IAAI,MAAM,GAAW,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;YAC/C,IAAI,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAA;YACvE,IAAI,sBAAsB,GAAW,IAAI,CAAC,SAAS,iCAC9C,mBAAmB,KACtB,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,IAC7B,CAAA;YACF,IAAI,mCAAQ,IAAI,KAAE,mBAAmB,EAAE,sBAAsB,GAAE,CAAA;YAE/D,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAA;YACxB,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAA;YAC3C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAChE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YACvD,MAAM,OAAO,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,CAAA;YAElC,IAAI,KAAK,GAAW,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAA;YAC5C,KAAK,IAAI,GAAG,GAAG,OAAO,CAAA;YACtB,KAAK,IAAI,GAAG,GAAG,WAAW,CAAA;YAC1B,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;YAEjD,IAAI,OAAO,GAAW,EAAE,CAAA;YACxB,MAAM,OAAO,GAAW,WAAW,CAAC,KAAK,CAAA;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,IAAI,YAAY,GAAW,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;gBACzD,OAAO,IAAI,OAAO,GAAG,GAAG,GAAG,YAAY,GAAG,IAAI,CAAA;aAC/C;YAED,OAAO;gBACL,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE;gBACpC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE;aAC9C,CAAA;QACH,CAAC;QACD,SAAS,CAAC,GAAG;YACX,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAA;AACH,CAAC;AA/CD,gDA+CC"}
@@ -1,17 +1,73 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createShipment = void 0;
4
+ const sftp_const_1 = require("../../../sftp-const");
4
5
  function createShipment() {
5
6
  return {
6
7
  method: 'post',
7
8
  path: '{folderPath}/{folderType}/oc/data',
8
9
  denormalize(req) {
9
- const { releaseGood, orderInventories, sftp } = req;
10
- const { folderPath } = sftp;
10
+ let { releaseGood, orderInventories, sftp } = req;
11
+ let { folderPath, platform } = sftp;
11
12
  const folderType = sftp.isDevelopment ? `dev` : `prd`;
13
+ const backupPath = `${sftp_const_1.BACKUPPATH}${platform}/${folderType}`;
14
+ let responseFilePattern = JSON.parse(sftp.responseFilePattern);
15
+ const { suffix, fileExtension, runningNumberDigit, sequence } = responseFilePattern;
16
+ let newSeq = parseFloat(sequence) + 1;
17
+ let newSequence = newSeq.toString().padStart(runningNumberDigit, '0');
18
+ let newResponseFilePattern = JSON.stringify(Object.assign(Object.assign({}, responseFilePattern), { sequence: newSeq.toString() }));
19
+ sftp = Object.assign(Object.assign({}, sftp), { responseFilePattern: newResponseFilePattern });
20
+ const warehouseNumber = releaseGood.refNo2;
21
+ let title = suffix ? suffix : ``;
22
+ title += newSequence;
23
+ title += warehouseNumber ? `_` + warehouseNumber : ``;
24
+ title += fileExtension ? `.` + fileExtension : ``;
25
+ const orderNoColumn = 15;
26
+ const shipmentColumn = 27;
27
+ const trackingNoColumn = 20;
28
+ const refNoLength = releaseGood.refNo.length;
29
+ let content = `1710` + releaseGood.refNo;
30
+ let spaceNeeded = orderNoColumn - refNoLength;
31
+ for (let i = 0; i < spaceNeeded; i++) {
32
+ content += ` `;
33
+ }
34
+ content += warehouseNumber;
35
+ content += `001000001`;
36
+ for (let i = 0; i < shipmentColumn; i++) {
37
+ content += ` `;
38
+ }
39
+ content += `000000 `;
40
+ for (let i = 0; i < trackingNoColumn; i++) {
41
+ content += ` `;
42
+ }
43
+ content += `000000000000 `;
44
+ const today = new Date();
45
+ const year = today.getFullYear().toString();
46
+ const month = (today.getMonth() + 1).toString().padStart(2, '0');
47
+ const day = today.getDate().toString().padStart(2, '0');
48
+ const newDate = year + month + day;
49
+ content += newDate + '\n';
50
+ for (let i = 0; i < orderInventories.length; i++) {
51
+ const orderInventory = orderInventories[i];
52
+ let sku = orderInventory.product.brandSku;
53
+ content += `1810` + releaseGood.refNo;
54
+ for (let i = 0; i < spaceNeeded; i++) {
55
+ content += ` `;
56
+ }
57
+ const idx = (i + 1).toString().padStart(2, '0');
58
+ const productCode = sku.substring(0, 4);
59
+ content += idx + `000000` + productCode;
60
+ let productCodeSpaceNeeded = 7 - productCode.length;
61
+ for (let i = 0; i < productCodeSpaceNeeded; i++) {
62
+ content += ` `;
63
+ }
64
+ const orderedQty = orderInventory.releaseQty.toString().padStart(4, '0');
65
+ const pickedQty = orderInventory.pickedQty.toString().padStart(4, '0');
66
+ content += orderedQty + pickedQty + '\n';
67
+ }
12
68
  return {
13
69
  resource: { folderPath, folderType },
14
- payload: { releaseGood, orderInventories, sftp, folderType }
70
+ payload: { title, content, sftp, backupPath }
15
71
  };
16
72
  },
17
73
  normalize(res) {
@@ -1 +1 @@
1
- {"version":3,"file":"create-shipment.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/create-shipment.ts"],"names":[],"mappings":";;;AAAA,SAAgB,cAAc;IAC5B,OAAO;QACL,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,mCAAmC;QACzC,WAAW,CAAC,GAAG;YACb,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;YACnD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;YAC3B,MAAM,UAAU,GAAW,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;YAE7D,OAAO;gBACL,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE;gBACpC,OAAO,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE;aAC7D,CAAA;QACH,CAAC;QACD,SAAS,CAAC,GAAG;YACX,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAA;AACH,CAAC;AAlBD,wCAkBC"}
1
+ {"version":3,"file":"create-shipment.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/create-shipment.ts"],"names":[],"mappings":"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"}
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./echo"), exports);
18
18
  __exportStar(require("./get-outbound-order"), exports);
19
19
  __exportStar(require("./create-shipment"), exports);
20
+ __exportStar(require("./create-serial-number"), exports);
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAsB;AACtB,uDAAoC;AACpC,oDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAsB;AACtB,uDAAoC;AACpC,oDAAiC;AACjC,yDAAsC"}
@@ -4,7 +4,7 @@ exports.Herbalife = void 0;
4
4
  require("../../sftp-s3");
5
5
  const xml_js_1 = require("xml-js");
6
6
  const sftp_const_1 = require("../../sftp-const");
7
- const generate_file_1 = require("../../util/generate-file");
7
+ const generate_files_1 = require("../../util/generate-files");
8
8
  const debug = require('debug')('things-factory:integration-sftp:herbalife');
9
9
  class Herbalife {
10
10
  constructor() { }
@@ -17,69 +17,22 @@ class Herbalife {
17
17
  return result;
18
18
  }
19
19
  async post(path, data = {}) {
20
- let sftp = data.sftp;
21
- let releaseGood = data.releaseGood;
22
- let orderInventories = data.orderInventories;
23
- let responseFilePattern = JSON.parse(sftp.responseFilePattern);
24
- const { suffix, warehouseCode, fileExtension, runningNumberDigit, sequence } = responseFilePattern;
25
- let newSeq = parseFloat(sequence) + 1;
26
- let newSequence = newSeq.toString().padStart(runningNumberDigit, '0');
27
- let newResponseFilePattern = JSON.stringify(Object.assign(Object.assign({}, responseFilePattern), { sequence: newSeq.toString() }));
28
- sftp = Object.assign(Object.assign({}, sftp), { responseFilePattern: newResponseFilePattern });
29
- const warehouseNumber = releaseGood.refNo2;
30
- let title = suffix ? suffix : ``;
31
- title += newSequence;
32
- title += warehouseNumber ? `_` + warehouseNumber : ``;
33
- title += fileExtension ? `.` + fileExtension : ``;
34
- const orderNoColumn = 15;
35
- const shipmentColumn = 27;
36
- const trackingNoColumn = 20;
37
- const refNoLength = releaseGood.refNo.length;
38
- let content = `1710` + releaseGood.refNo;
39
- let spaceNeeded = orderNoColumn - refNoLength;
40
- for (let i = 0; i < spaceNeeded; i++) {
41
- content += ` `;
42
- }
43
- content += warehouseNumber;
44
- content += `001000001`;
45
- for (let i = 0; i < shipmentColumn; i++) {
46
- content += ` `;
47
- }
48
- content += `000000 `;
49
- for (let i = 0; i < trackingNoColumn; i++) {
50
- content += ` `;
51
- }
52
- content += `000000000000 `;
53
- const today = new Date();
54
- const year = today.getFullYear().toString();
55
- const month = (today.getMonth() + 1).toString().padStart(2, '0');
56
- const day = today.getDate().toString().padStart(2, '0');
57
- const newDate = year + month + day;
58
- content += newDate + '\n';
59
- for (let i = 0; i < orderInventories.length; i++) {
60
- const orderInventory = orderInventories[i];
61
- let sku = orderInventory.product.brandSku;
62
- content += `1810` + releaseGood.refNo;
63
- for (let i = 0; i < spaceNeeded; i++) {
64
- content += ` `;
65
- }
66
- const idx = (i + 1).toString().padStart(2, '0');
67
- const productCode = sku.substring(0, 4);
68
- content += idx + `000000` + productCode;
69
- let productCodeSpaceNeeded = 7 - productCode.length;
70
- for (let i = 0; i < productCodeSpaceNeeded; i++) {
71
- content += ` `;
20
+ const { title, content, sftp, backupPath } = data;
21
+ let params = [
22
+ {
23
+ title,
24
+ uploadPath: path,
25
+ content
72
26
  }
73
- const orderedQty = orderInventory.releaseQty.toString().padStart(4, '0');
74
- const pickedQty = orderInventory.pickedQty.toString().padStart(4, '0');
75
- content += orderedQty + pickedQty + '\n';
27
+ ];
28
+ if (backupPath) {
29
+ params.push({
30
+ title,
31
+ uploadPath: backupPath,
32
+ content
33
+ });
76
34
  }
77
- const params = {
78
- title,
79
- uploadPath: path,
80
- content
81
- };
82
- await (0, generate_file_1.generateFile)(params);
35
+ await (0, generate_files_1.generateFiles)(params);
83
36
  return sftp;
84
37
  }
85
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"herbalife.js","sourceRoot":"","sources":["../../../server/controllers/herbalife/herbalife.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"herbalife.js","sourceRoot":"","sources":["../../../server/controllers/herbalife/herbalife.ts"],"names":[],"mappings":";;;AAAA,yBAAsB;AAEtB,mCAA+B;AAG/B,iDAAkD;AAClD,8DAAyD;AAEzD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,2CAA2C,CAAC,CAAA;AAI3E,MAAa,SAAS;IACpB,gBAAe,CAAC;IAEhB,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,OAAY,EAAE;QACpC,MAAM,UAAU,GAAQ,MAAM,4BAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACrE,MAAM,IAAI,GAAQ,IAAA,eAAM,EAAC,UAAU,EAAE;YACnC,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;QACF,MAAM,MAAM,qBAAa,IAAI,CAAE,CAAA;QAC/B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAAY,EAAE;QACrC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GACxC,IAAI,CAAA;QAEN,IAAI,MAAM,GAAU;YAClB;gBACE,KAAK;gBACL,UAAU,EAAE,IAAI;gBAChB,OAAO;aACR;SACF,CAAA;QAED,IAAI,UAAU,EAAE;YACd,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK;gBACL,UAAU,EAAE,UAAU;gBACtB,OAAO;aACR,CAAC,CAAA;SACH;QACD,MAAM,IAAA,8BAAa,EAAC,MAAM,CAAC,CAAA;QAE3B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAnCD,8BAmCC"}
@@ -33,6 +33,7 @@ class SftpAPI {
33
33
  static echo(sftp, req) { }
34
34
  static getOutboundOrder(sftp, req) { }
35
35
  static createShipment(sftp, req) { }
36
+ static createSerialNumber(sftp, req) { }
36
37
  }
37
38
  SftpAPI.platforms = {};
38
39
  __decorate([
@@ -53,5 +54,11 @@ __decorate([
53
54
  __metadata("design:paramtypes", [Object, Object]),
54
55
  __metadata("design:returntype", Object)
55
56
  ], SftpAPI, "createShipment", null);
57
+ __decorate([
58
+ decorators_1.api,
59
+ __metadata("design:type", Function),
60
+ __metadata("design:paramtypes", [Object, Object]),
61
+ __metadata("design:returntype", Object)
62
+ ], SftpAPI, "createSerialNumber", null);
56
63
  exports.SftpAPI = SftpAPI;
57
64
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/sftp-api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAuC;AAEvC,2CAAoC;AACpC,6CAAkC;AAElC,MAAa,OAAO;IAGlB,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI;QACxC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;YACxB,MAAM;YACN,IAAI;SACL,CAAA;IACH,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAI;QACrB,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QACrB,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,cAAI,CAAC,CAAA;QACtC,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC;YAC9B,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAA;IACJ,CAAC;IAGD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;IAG9B,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;IAG1C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;;AA5BjC,iBAAS,GAAG,EAAE,CAAA;AAsBrB;IADC,gBAAG;;;;yBAC0B;AAG9B;IADC,gBAAG;;;;qCACsC;AAG1C;IADC,gBAAG;;;;mCACoC;AA7B1C,0BA8BC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/sftp-api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAuC;AAEvC,2CAAoC;AACpC,6CAAkC;AAElC,MAAa,OAAO;IAGlB,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI;QACxC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;YACxB,MAAM;YACN,IAAI;SACL,CAAA;IACH,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAI;QACrB,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QACrB,MAAM,UAAU,GAAG,IAAA,uBAAa,EAAC,cAAI,CAAC,CAAA;QACtC,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC;YAC9B,KAAK,EAAE,EAAE,EAAE,EAAE;YACb,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAA;IACJ,CAAC;IAGD,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;IAG9B,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;IAG1C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;IAGxC,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;;AA/BrC,iBAAS,GAAG,EAAE,CAAA;AAsBrB;IADC,gBAAG;;;;yBAC0B;AAG9B;IADC,gBAAG;;;;qCACsC;AAG1C;IADC,gBAAG;;;;mCACoC;AAGxC;IADC,gBAAG;;;;uCACwC;AAhC9C,0BAiCC"}
@@ -11,6 +11,13 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
15
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
16
+ var m = o[Symbol.asyncIterator], i;
17
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
18
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
19
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
20
+ };
14
21
  Object.defineProperty(exports, "__esModule", { value: true });
15
22
  exports.SftpMutation = void 0;
16
23
  require("../../sftp-s3");
@@ -74,6 +81,7 @@ let SftpMutation = class SftpMutation {
74
81
  return true;
75
82
  }
76
83
  async syncSftpOrders(customerDomainId, context) {
84
+ var e_1, _a;
77
85
  const { tx } = context.state;
78
86
  const customerDomain = await tx.getRepository(shell_1.Domain).findOne(customerDomainId);
79
87
  const customerBizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({
@@ -93,42 +101,51 @@ let SftpMutation = class SftpMutation {
93
101
  let initialDataPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.SUBMITDATAPATH}/`;
94
102
  const results = await (0, util_1.getPermittedDirectories)({ path: initialDataPath }, context);
95
103
  const filesDirectories = results.filter(result => result.Size > 0);
96
- for (let j = 0; j < filesDirectories.length; j++) {
97
- let dataPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.SUBMITDATAPATH}/`;
98
- let successPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.SUCCESSDATAPATH}/`;
99
- let failedPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.FAILEDDATAPATH}/`;
100
- const fileDirectory = filesDirectories[j];
101
- const fileKey = fileDirectory.Key;
102
- const lastSlashIdx = fileKey.lastIndexOf('/');
103
- const fileString = fileKey.substring(lastSlashIdx + 1, fileKey.length);
104
- try {
105
- const sftp = sftpUser;
106
- let result = await controllers_1.SftpAPI.getOutboundOrder(sftp, { folderPath, folderType, fileKey: fileString });
107
- let isAccept = result.isAccept;
108
- if (isAccept) {
109
- delete result.isAccept;
110
- if (result) {
111
- let { items: releaseOrders } = await integration_fulfillment_1.FulfillmentAPI.getOutboundOrders(fulfilmentCenter, {
112
- customerBizplaceId,
113
- refNo: result.refNo
114
- });
115
- if (releaseOrders) {
116
- result.collectionOrderNo = result.collectionOrderNo + ' - ' + (releaseOrders.length + 1);
117
- }
118
- const releaseOrder = await integration_fulfillment_1.FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {
119
- customerBizplaceId,
120
- releaseOrder: result
121
- });
122
- if (releaseOrder) {
123
- let movePaths = {
124
- source: (dataPath += fileString),
125
- destination: (successPath += fileString)
126
- };
127
- await sftp_const_1.SFTPFILESTORAGE.moveFile(movePaths);
104
+ try {
105
+ for (var filesDirectories_1 = (e_1 = void 0, __asyncValues(filesDirectories)), filesDirectories_1_1; filesDirectories_1_1 = await filesDirectories_1.next(), !filesDirectories_1_1.done;) {
106
+ let fileDirectory = filesDirectories_1_1.value;
107
+ let dataPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.SUBMITDATAPATH}/`;
108
+ let successPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.SUCCESSDATAPATH}/`;
109
+ let failedPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.FAILEDDATAPATH}/`;
110
+ const fileKey = fileDirectory.Key;
111
+ const lastSlashIdx = fileKey.lastIndexOf('/');
112
+ const fileString = fileKey.substring(lastSlashIdx + 1, fileKey.length);
113
+ try {
114
+ const sftp = sftpUser;
115
+ let result = await controllers_1.SftpAPI.getOutboundOrder(sftp, { folderPath, folderType, fileKey: fileString });
116
+ let isAccept = result.isAccept;
117
+ if (isAccept) {
118
+ delete result.isAccept;
119
+ if (result) {
120
+ let { items: releaseOrders } = await integration_fulfillment_1.FulfillmentAPI.getOutboundOrders(fulfilmentCenter, {
121
+ customerBizplaceId,
122
+ refNo: result.refNo
123
+ });
124
+ if (releaseOrders) {
125
+ result.collectionOrderNo = result.collectionOrderNo + ' - ' + (releaseOrders.length + 1);
126
+ }
127
+ const releaseOrder = await integration_fulfillment_1.FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {
128
+ customerBizplaceId,
129
+ releaseOrder: result
130
+ });
131
+ if (releaseOrder) {
132
+ let movePaths = {
133
+ source: (dataPath += fileString),
134
+ destination: (successPath += fileString)
135
+ };
136
+ await sftp_const_1.SFTPFILESTORAGE.moveFile(movePaths);
137
+ }
128
138
  }
129
139
  }
140
+ else {
141
+ let movePaths = {
142
+ source: (dataPath += fileString),
143
+ destination: (failedPath += fileString)
144
+ };
145
+ await sftp_const_1.SFTPFILESTORAGE.moveFile(movePaths);
146
+ }
130
147
  }
131
- else {
148
+ catch (e) {
132
149
  let movePaths = {
133
150
  source: (dataPath += fileString),
134
151
  destination: (failedPath += fileString)
@@ -136,13 +153,13 @@ let SftpMutation = class SftpMutation {
136
153
  await sftp_const_1.SFTPFILESTORAGE.moveFile(movePaths);
137
154
  }
138
155
  }
139
- catch (e) {
140
- let movePaths = {
141
- source: (dataPath += fileString),
142
- destination: (failedPath += fileString)
143
- };
144
- await sftp_const_1.SFTPFILESTORAGE.moveFile(movePaths);
156
+ }
157
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
158
+ finally {
159
+ try {
160
+ if (filesDirectories_1_1 && !filesDirectories_1_1.done && (_a = filesDirectories_1.return)) await _a.call(filesDirectories_1);
145
161
  }
162
+ finally { if (e_1) throw e_1.error; }
146
163
  }
147
164
  }
148
165
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"sftp-mutation.js","sourceRoot":"","sources":["../../../server/service/sftp/sftp-mutation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sftp-mutation.js","sourceRoot":"","sources":["../../../server/service/sftp/sftp-mutation.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.COMPLETEFAILEDDATAPATH = exports.COMPLETESUCCESSDATAPATH = exports.COMPLETEDATAPATH = exports.FAILEDDATAPATH = exports.SUCCESSDATAPATH = exports.SUBMITDATAPATH = exports.SFTPFILESTORAGE = void 0;
3
+ exports.BACKUPPATH = exports.SNFAILEDDATAPATH = exports.SNSUCCESSDATAPATH = exports.SNSUBMITDATAPATH = exports.COMPLETEFAILEDDATAPATH = exports.COMPLETESUCCESSDATAPATH = exports.COMPLETEDATAPATH = exports.FAILEDDATAPATH = exports.SUCCESSDATAPATH = exports.SUBMITDATAPATH = exports.SFTPFILESTORAGE = void 0;
4
4
  const env_1 = require("@things-factory/env");
5
5
  exports.SFTPFILESTORAGE = env_1.config.get('sftpFileStorage');
6
6
  exports.SUBMITDATAPATH = '/sob/data';
@@ -9,4 +9,8 @@ exports.FAILEDDATAPATH = '/sob/failed';
9
9
  exports.COMPLETEDATAPATH = '/oc/data';
10
10
  exports.COMPLETESUCCESSDATAPATH = '/oc/success';
11
11
  exports.COMPLETEFAILEDDATAPATH = '/oc/failed';
12
+ exports.SNSUBMITDATAPATH = '/sn/data';
13
+ exports.SNSUCCESSDATAPATH = '/sn/success';
14
+ exports.SNFAILEDDATAPATH = '/sn/failed';
15
+ exports.BACKUPPATH = 'hatiosea/';
12
16
  //# sourceMappingURL=sftp-const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sftp-const.js","sourceRoot":"","sources":["../server/sftp-const.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAEjC,QAAA,eAAe,GAAQ,YAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;AACpD,QAAA,cAAc,GAAW,WAAW,CAAA;AACpC,QAAA,eAAe,GAAW,cAAc,CAAA;AACxC,QAAA,cAAc,GAAW,aAAa,CAAA;AACtC,QAAA,gBAAgB,GAAW,UAAU,CAAA;AACrC,QAAA,uBAAuB,GAAW,aAAa,CAAA;AAC/C,QAAA,sBAAsB,GAAW,YAAY,CAAA"}
1
+ {"version":3,"file":"sftp-const.js","sourceRoot":"","sources":["../server/sftp-const.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAEjC,QAAA,eAAe,GAAQ,YAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;AACpD,QAAA,cAAc,GAAW,WAAW,CAAA;AACpC,QAAA,eAAe,GAAW,cAAc,CAAA;AACxC,QAAA,cAAc,GAAW,aAAa,CAAA;AACtC,QAAA,gBAAgB,GAAW,UAAU,CAAA;AACrC,QAAA,uBAAuB,GAAW,aAAa,CAAA;AAC/C,QAAA,sBAAsB,GAAW,YAAY,CAAA;AAC7C,QAAA,gBAAgB,GAAW,UAAU,CAAA;AACrC,QAAA,iBAAiB,GAAW,aAAa,CAAA;AACzC,QAAA,gBAAgB,GAAW,YAAY,CAAA;AACvC,QAAA,UAAU,GAAW,WAAW,CAAA"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateFiles = void 0;
4
+ require("../sftp-s3");
5
+ const sftp_const_1 = require("../sftp-const");
6
+ const fs = require('fs');
7
+ async function generateFiles(params) {
8
+ const fileDirectory = './uploaded-files';
9
+ for (let i = 0; i < params.length; i++) {
10
+ let param = params[i];
11
+ const { uploadPath, content, title } = param;
12
+ if (!fs.existsSync(fileDirectory)) {
13
+ fs.mkdirSync(fileDirectory);
14
+ }
15
+ const filePath = fileDirectory + '/' + title;
16
+ fs.writeFile(filePath, content, function (err) {
17
+ if (err)
18
+ throw err;
19
+ console.log('File is created successfully.');
20
+ });
21
+ if (uploadPath) {
22
+ const stream = fs.createReadStream(filePath);
23
+ await sftp_const_1.SFTPFILESTORAGE.uploadFile({ stream, filename: title, uploadPath });
24
+ }
25
+ }
26
+ fs.rm(fileDirectory, { recursive: true });
27
+ return true;
28
+ }
29
+ exports.generateFiles = generateFiles;
30
+ //# sourceMappingURL=generate-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-files.js","sourceRoot":"","sources":["../../server/util/generate-files.ts"],"names":[],"mappings":";;;AAAA,sBAAmB;AAEnB,8CAA+C;AAE/C,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAEjB,KAAK,UAAU,aAAa,CAAC,MAAa;IAC/C,MAAM,aAAa,GAAG,kBAAkB,CAAA;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,KAAK,GAAQ,MAAM,CAAC,CAAC,CAAC,CAAA;QAC1B,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;QAE5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;YACjC,EAAE,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;SAC5B;QAED,MAAM,QAAQ,GAAG,aAAa,GAAG,GAAG,GAAG,KAAK,CAAA;QAE5C,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG;YAC3C,IAAI,GAAG;gBAAE,MAAM,GAAG,CAAA;YAClB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;QAEF,IAAI,UAAU,EAAE;YACd,MAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;YAC5C,MAAM,4BAAe,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;SAC1E;KACF;IAED,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEzC,OAAO,IAAI,CAAA;AACb,CAAC;AA1BD,sCA0BC"}
@@ -15,5 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./get-permitted-directories"), exports);
18
- __exportStar(require("./generate-file"), exports);
18
+ __exportStar(require("./generate-files"), exports);
19
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA2C;AAC3C,kDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA2C;AAC3C,mDAAgC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/integration-sftp",
3
- "version": "5.0.0-alpha.4",
3
+ "version": "5.0.0-alpha.40",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -24,13 +24,13 @@
24
24
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
25
25
  },
26
26
  "dependencies": {
27
- "@things-factory/auth-base": "^5.0.0-alpha.4",
28
- "@things-factory/biz-base": "^5.0.0-alpha.4",
29
- "@things-factory/env": "^5.0.0-alpha.4",
30
- "@things-factory/integration-fulfillment": "^5.0.0-alpha.4",
31
- "@things-factory/shell": "^5.0.0-alpha.4",
27
+ "@things-factory/auth-base": "^5.0.0-alpha.40",
28
+ "@things-factory/biz-base": "^5.0.0-alpha.40",
29
+ "@things-factory/env": "^5.0.0-alpha.40",
30
+ "@things-factory/integration-fulfillment": "^5.0.0-alpha.40",
31
+ "@things-factory/shell": "^5.0.0-alpha.40",
32
32
  "aws-sdk": "^2.960.0",
33
33
  "xml-js": "^1.6.11"
34
34
  },
35
- "gitHead": "77253f86954dc6f5c14356ea85887c323fd2511a"
35
+ "gitHead": "c64462e85c9b744250f5649d28c0ec4bd56a1b38"
36
36
  }
@@ -0,0 +1,50 @@
1
+ import { BACKUPPATH } from '../../../sftp-const'
2
+
3
+ export function createSerialNumber() {
4
+ return {
5
+ method: 'post',
6
+ path: '{folderPath}/{folderType}/sn/data',
7
+ denormalize(req) {
8
+ let { releaseGood, inventoryItems, sftp } = req
9
+ let { folderPath, platform } = sftp
10
+ const folderType: string = sftp.isDevelopment ? `dev` : `prd`
11
+ const backupPath: string = `${BACKUPPATH}${platform}/${folderType}`
12
+
13
+ let responseFilePattern: any = JSON.parse(sftp.responseFilePattern)
14
+ const { snSuffix, fileExtension, snRunningNumberDigit, snSequence } = responseFilePattern
15
+ let newSeq: number = parseFloat(snSequence) + 1
16
+ let newSequence = newSeq.toString().padStart(snRunningNumberDigit, '0')
17
+ let newResponseFilePattern: string = JSON.stringify({
18
+ ...responseFilePattern,
19
+ snSequence: newSeq.toString()
20
+ })
21
+ sftp = { ...sftp, responseFilePattern: newResponseFilePattern }
22
+
23
+ const today = new Date()
24
+ const year = today.getFullYear().toString()
25
+ const month = (today.getMonth() + 1).toString().padStart(2, '0')
26
+ const day = today.getDate().toString().padStart(2, '0')
27
+ const newDate = day + month + year
28
+
29
+ let title: string = snSuffix ? snSuffix : ``
30
+ title += `_` + newDate
31
+ title += `_` + newSequence
32
+ title += fileExtension ? `.` + fileExtension : ``
33
+
34
+ let content: string = ''
35
+ const orderNo: string = releaseGood.refNo
36
+ for (let i = 0; i < inventoryItems.length; i++) {
37
+ let serialNumber: string = inventoryItems[i].serialNumber
38
+ content += orderNo + '|' + serialNumber + '\n'
39
+ }
40
+
41
+ return {
42
+ resource: { folderPath, folderType },
43
+ payload: { title, content, sftp, backupPath }
44
+ }
45
+ },
46
+ normalize(res) {
47
+ return res
48
+ }
49
+ }
50
+ }
@@ -1,15 +1,80 @@
1
+ import { BACKUPPATH } from '../../../sftp-const'
2
+
1
3
  export function createShipment() {
2
4
  return {
3
5
  method: 'post',
4
6
  path: '{folderPath}/{folderType}/oc/data',
5
7
  denormalize(req) {
6
- const { releaseGood, orderInventories, sftp } = req
7
- const { folderPath } = sftp
8
+ let { releaseGood, orderInventories, sftp } = req
9
+ let { folderPath, platform } = sftp
8
10
  const folderType: string = sftp.isDevelopment ? `dev` : `prd`
11
+ const backupPath: string = `${BACKUPPATH}${platform}/${folderType}`
12
+
13
+ let responseFilePattern: any = JSON.parse(sftp.responseFilePattern)
14
+ const { suffix, fileExtension, runningNumberDigit, sequence } = responseFilePattern
15
+ let newSeq: number = parseFloat(sequence) + 1
16
+ let newSequence = newSeq.toString().padStart(runningNumberDigit, '0')
17
+ let newResponseFilePattern: string = JSON.stringify({
18
+ ...responseFilePattern,
19
+ sequence: newSeq.toString()
20
+ })
21
+ sftp = { ...sftp, responseFilePattern: newResponseFilePattern }
22
+
23
+ const warehouseNumber: string = releaseGood.refNo2
24
+ let title: string = suffix ? suffix : ``
25
+ title += newSequence
26
+ title += warehouseNumber ? `_` + warehouseNumber : ``
27
+ title += fileExtension ? `.` + fileExtension : ``
28
+
29
+ const orderNoColumn: number = 15
30
+ const shipmentColumn: number = 27
31
+ const trackingNoColumn: number = 20
32
+
33
+ const refNoLength: number = releaseGood.refNo.length
34
+ let content: string = `1710` + releaseGood.refNo
35
+ let spaceNeeded: number = orderNoColumn - refNoLength
36
+ for (let i = 0; i < spaceNeeded; i++) {
37
+ content += ` `
38
+ }
39
+ content += warehouseNumber
40
+ content += `001000001`
41
+ for (let i = 0; i < shipmentColumn; i++) {
42
+ content += ` `
43
+ }
44
+ content += `000000 `
45
+ for (let i = 0; i < trackingNoColumn; i++) {
46
+ content += ` `
47
+ }
48
+ content += `000000000000 `
49
+ const today = new Date()
50
+ const year = today.getFullYear().toString()
51
+ const month = (today.getMonth() + 1).toString().padStart(2, '0')
52
+ const day = today.getDate().toString().padStart(2, '0')
53
+ const newDate = year + month + day
54
+ content += newDate + '\n'
55
+
56
+ for (let i = 0; i < orderInventories.length; i++) {
57
+ const orderInventory: any = orderInventories[i]
58
+ let sku: string = orderInventory.product.brandSku
59
+ content += `1810` + releaseGood.refNo
60
+ for (let i = 0; i < spaceNeeded; i++) {
61
+ content += ` `
62
+ }
63
+ const idx = (i + 1).toString().padStart(2, '0')
64
+ const productCode: string = sku.substring(0, 4)
65
+ content += idx + `000000` + productCode
66
+ let productCodeSpaceNeeded = 7 - productCode.length
67
+ for (let i = 0; i < productCodeSpaceNeeded; i++) {
68
+ content += ` `
69
+ }
70
+ const orderedQty = orderInventory.releaseQty.toString().padStart(4, '0')
71
+ const pickedQty = orderInventory.pickedQty.toString().padStart(4, '0')
72
+ content += orderedQty + pickedQty + '\n'
73
+ }
9
74
 
10
75
  return {
11
76
  resource: { folderPath, folderType },
12
- payload: { releaseGood, orderInventories, sftp, folderType }
77
+ payload: { title, content, sftp, backupPath }
13
78
  }
14
79
  },
15
80
  normalize(res) {
@@ -1,3 +1,4 @@
1
1
  export * from './echo'
2
2
  export * from './get-outbound-order'
3
3
  export * from './create-shipment'
4
+ export * from './create-serial-number'
@@ -4,7 +4,7 @@ import { xml2js } from 'xml-js'
4
4
 
5
5
  import { Sftp } from '../../service'
6
6
  import { SFTPFILESTORAGE } from '../../sftp-const'
7
- import { generateFile } from '../../util/generate-file'
7
+ import { generateFiles } from '../../util/generate-files'
8
8
 
9
9
  const debug = require('debug')('things-factory:integration-sftp:herbalife')
10
10
 
@@ -23,78 +23,25 @@ export class Herbalife {
23
23
  }
24
24
 
25
25
  async post(path: string, data: any = {}) {
26
- let sftp: Sftp = data.sftp
27
- let releaseGood: any = data.releaseGood
28
- let orderInventories: any[] = data.orderInventories
29
-
30
- let responseFilePattern: any = JSON.parse(sftp.responseFilePattern)
31
- const { suffix, warehouseCode, fileExtension, runningNumberDigit, sequence } = responseFilePattern
32
- let newSeq: number = parseFloat(sequence) + 1
33
- let newSequence = newSeq.toString().padStart(runningNumberDigit, '0')
34
- let newResponseFilePattern: string = JSON.stringify({
35
- ...responseFilePattern,
36
- sequence: newSeq.toString()
37
- })
38
- sftp = { ...sftp, responseFilePattern: newResponseFilePattern }
39
-
40
- const warehouseNumber: string = releaseGood.refNo2
41
- let title: string = suffix ? suffix : ``
42
- title += newSequence
43
- title += warehouseNumber ? `_` + warehouseNumber : ``
44
- title += fileExtension ? `.` + fileExtension : ``
45
-
46
- const orderNoColumn: number = 15
47
- const shipmentColumn: number = 27
48
- const trackingNoColumn: number = 20
49
-
50
- const refNoLength: number = releaseGood.refNo.length
51
- let content: string = `1710` + releaseGood.refNo
52
- let spaceNeeded: number = orderNoColumn - refNoLength
53
- for (let i = 0; i < spaceNeeded; i++) {
54
- content += ` `
55
- }
56
- content += warehouseNumber
57
- content += `001000001`
58
- for (let i = 0; i < shipmentColumn; i++) {
59
- content += ` `
60
- }
61
- content += `000000 `
62
- for (let i = 0; i < trackingNoColumn; i++) {
63
- content += ` `
64
- }
65
- content += `000000000000 `
66
- const today = new Date()
67
- const year = today.getFullYear().toString()
68
- const month = (today.getMonth() + 1).toString().padStart(2, '0')
69
- const day = today.getDate().toString().padStart(2, '0')
70
- const newDate = year + month + day
71
- content += newDate + '\n'
72
-
73
- for (let i = 0; i < orderInventories.length; i++) {
74
- const orderInventory: any = orderInventories[i]
75
- let sku: string = orderInventory.product.brandSku
76
- content += `1810` + releaseGood.refNo
77
- for (let i = 0; i < spaceNeeded; i++) {
78
- content += ` `
26
+ const { title, content, sftp, backupPath }: { title: string; content: string; sftp: Sftp; backupPath: string } =
27
+ data
28
+
29
+ let params: any[] = [
30
+ {
31
+ title,
32
+ uploadPath: path,
33
+ content
79
34
  }
80
- const idx = (i + 1).toString().padStart(2, '0')
81
- const productCode: string = sku.substring(0, 4)
82
- content += idx + `000000` + productCode
83
- let productCodeSpaceNeeded = 7 - productCode.length
84
- for (let i = 0; i < productCodeSpaceNeeded; i++) {
85
- content += ` `
86
- }
87
- const orderedQty = orderInventory.releaseQty.toString().padStart(4, '0')
88
- const pickedQty = orderInventory.pickedQty.toString().padStart(4, '0')
89
- content += orderedQty + pickedQty + '\n'
90
- }
91
-
92
- const params: any = {
93
- title,
94
- uploadPath: path,
95
- content
35
+ ]
36
+
37
+ if (backupPath) {
38
+ params.push({
39
+ title,
40
+ uploadPath: backupPath,
41
+ content
42
+ })
96
43
  }
97
- await generateFile(params)
44
+ await generateFiles(params)
98
45
 
99
46
  return sftp
100
47
  }
@@ -33,4 +33,7 @@ export class SftpAPI {
33
33
 
34
34
  @api
35
35
  static createShipment(sftp, req): any {}
36
+
37
+ @api
38
+ static createSerialNumber(sftp, req): any {}
36
39
  }
@@ -145,11 +145,10 @@ export class SftpMutation {
145
145
  const results: any[] = await getPermittedDirectories({ path: initialDataPath }, context)
146
146
  const filesDirectories: any[] = results.filter(result => result.Size > 0)
147
147
 
148
- for (let j = 0; j < filesDirectories.length; j++) {
148
+ for await (let fileDirectory of filesDirectories) {
149
149
  let dataPath: string = `${sftpUser.folderPath}/${folderType}${SUBMITDATAPATH}/`
150
150
  let successPath: string = `${sftpUser.folderPath}/${folderType}${SUCCESSDATAPATH}/`
151
151
  let failedPath: string = `${sftpUser.folderPath}/${folderType}${FAILEDDATAPATH}/`
152
- const fileDirectory: any = filesDirectories[j]
153
152
  const fileKey: string = fileDirectory.Key
154
153
  const lastSlashIdx = fileKey.lastIndexOf('/')
155
154
  const fileString: string = fileKey.substring(lastSlashIdx + 1, fileKey.length)
@@ -7,3 +7,7 @@ export var FAILEDDATAPATH: string = '/sob/failed'
7
7
  export var COMPLETEDATAPATH: string = '/oc/data'
8
8
  export var COMPLETESUCCESSDATAPATH: string = '/oc/success'
9
9
  export var COMPLETEFAILEDDATAPATH: string = '/oc/failed'
10
+ export var SNSUBMITDATAPATH: string = '/sn/data'
11
+ export var SNSUCCESSDATAPATH: string = '/sn/success'
12
+ export var SNFAILEDDATAPATH: string = '/sn/failed'
13
+ export var BACKUPPATH: string = 'hatiosea/'
@@ -0,0 +1,33 @@
1
+ import '../sftp-s3'
2
+
3
+ import { SFTPFILESTORAGE } from '../sftp-const'
4
+
5
+ const fs = require('fs')
6
+
7
+ export async function generateFiles(params: any[]) {
8
+ const fileDirectory = './uploaded-files'
9
+ for (let i = 0; i < params.length; i++) {
10
+ let param: any = params[i]
11
+ const { uploadPath, content, title } = param
12
+
13
+ if (!fs.existsSync(fileDirectory)) {
14
+ fs.mkdirSync(fileDirectory)
15
+ }
16
+
17
+ const filePath = fileDirectory + '/' + title
18
+
19
+ fs.writeFile(filePath, content, function (err) {
20
+ if (err) throw err
21
+ console.log('File is created successfully.')
22
+ })
23
+
24
+ if (uploadPath) {
25
+ const stream = fs.createReadStream(filePath)
26
+ await SFTPFILESTORAGE.uploadFile({ stream, filename: title, uploadPath })
27
+ }
28
+ }
29
+
30
+ fs.rm(fileDirectory, { recursive: true })
31
+
32
+ return true
33
+ }
@@ -1,2 +1,2 @@
1
1
  export * from './get-permitted-directories'
2
- export * from './generate-file'
2
+ export * from './generate-files'
@@ -1,30 +0,0 @@
1
- import '../sftp-s3'
2
-
3
- import { SFTPFILESTORAGE } from '../sftp-const'
4
-
5
- const fs = require('fs')
6
-
7
- export async function generateFile(params: any) {
8
- const { uploadPath, content, title } = params
9
- const fileDirectory = './uploaded-files'
10
-
11
- if (!fs.existsSync(fileDirectory)) {
12
- fs.mkdirSync(fileDirectory)
13
- }
14
-
15
- const filePath = fileDirectory + '/' + title
16
-
17
- fs.writeFile(filePath, content, function (err) {
18
- if (err) throw err
19
- console.log('File is created successfully.')
20
- })
21
-
22
- if (uploadPath) {
23
- const stream = fs.createReadStream(filePath)
24
- await SFTPFILESTORAGE.uploadFile({ stream, filename: title, uploadPath })
25
- }
26
-
27
- fs.rmdirSync(fileDirectory, { recursive: true })
28
-
29
- return true
30
- }