@things-factory/integration-sftp 9.0.0-beta.8 → 9.0.0

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.
@@ -16,8 +16,11 @@ function createSerialNumber() {
16
16
  const { snSuffix, fileExtension, snRunningNumberDigit, snSequence } = responseFilePattern;
17
17
  let newSeq = parseFloat(snSequence) + 1;
18
18
  let newSequence = newSeq.toString().padStart(snRunningNumberDigit, '0');
19
- let newResponseFilePattern = JSON.stringify(Object.assign(Object.assign({}, responseFilePattern), { snSequence: newSeq.toString() }));
20
- sftp = Object.assign(Object.assign({}, sftp), { responseFilePattern: newResponseFilePattern });
19
+ let newResponseFilePattern = JSON.stringify({
20
+ ...responseFilePattern,
21
+ snSequence: newSeq.toString()
22
+ });
23
+ sftp = { ...sftp, responseFilePattern: newResponseFilePattern };
21
24
  const today = new Date();
22
25
  const year = today.getFullYear().toString();
23
26
  const month = (today.getMonth() + 1).toString().padStart(2, '0');
@@ -1 +1 @@
1
- {"version":3,"file":"create-serial-number.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/create-serial-number.ts"],"names":[],"mappings":";;AAEA,gDAgDC;AAlDD,oDAAkE;AAElE,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,MAAM,GAAW,6BAAgB,CAAA;YACvC,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,CAAC;gBAC/C,IAAI,YAAY,GAAW,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;gBACzD,OAAO,IAAI,OAAO,GAAG,GAAG,GAAG,YAAY,GAAG,IAAI,CAAA;YAChD,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE;gBAC5C,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","sourcesContent":["import { BACKUPPATH, SNSUBMITDATAPATH } from '../../../sftp-const'\n\nexport function createSerialNumber() {\n return {\n method: 'post',\n path: '{folderPath}/{folderType}{snPath}',\n denormalize(req) {\n let { releaseGood, inventoryItems, sftp } = req\n let { folderPath, platform } = sftp\n const folderType: string = sftp.isDevelopment ? `dev` : `prd`\n const snPath: string = SNSUBMITDATAPATH\n const backupPath: string = `${BACKUPPATH}${platform}/${folderType}`\n\n let responseFilePattern: any = JSON.parse(sftp.responseFilePattern)\n const { snSuffix, fileExtension, snRunningNumberDigit, snSequence } = responseFilePattern\n let newSeq: number = parseFloat(snSequence) + 1\n let newSequence = newSeq.toString().padStart(snRunningNumberDigit, '0')\n let newResponseFilePattern: string = JSON.stringify({\n ...responseFilePattern,\n snSequence: newSeq.toString()\n })\n sftp = { ...sftp, responseFilePattern: newResponseFilePattern }\n\n const today = new Date()\n const year = today.getFullYear().toString()\n const month = (today.getMonth() + 1).toString().padStart(2, '0')\n const day = today.getDate().toString().padStart(2, '0')\n const newDate = day + month + year\n\n let title: string = snSuffix ? snSuffix : ``\n title += `_` + newDate\n title += `_` + newSequence\n title += fileExtension ? `.` + fileExtension : ``\n\n let content: string = ''\n const orderNo: string = releaseGood.refNo\n for (let i = 0; i < inventoryItems.length; i++) {\n let serialNumber: string = inventoryItems[i].serialNumber\n content += orderNo + '|' + serialNumber + '\\n'\n }\n\n return {\n resource: { folderPath, folderType, snPath },\n payload: { title, content, sftp, backupPath }\n }\n },\n normalize(res) {\n return res\n }\n }\n}\n"]}
1
+ {"version":3,"file":"create-serial-number.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/create-serial-number.ts"],"names":[],"mappings":";;AAEA,gDAgDC;AAlDD,oDAAkE;AAElE,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,MAAM,GAAW,6BAAgB,CAAA;YACvC,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,CAAC;gBAClD,GAAG,mBAAmB;gBACtB,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE;aAC9B,CAAC,CAAA;YACF,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,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,CAAC;gBAC/C,IAAI,YAAY,GAAW,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;gBACzD,OAAO,IAAI,OAAO,GAAG,GAAG,GAAG,YAAY,GAAG,IAAI,CAAA;YAChD,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE;gBAC5C,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","sourcesContent":["import { BACKUPPATH, SNSUBMITDATAPATH } from '../../../sftp-const'\n\nexport function createSerialNumber() {\n return {\n method: 'post',\n path: '{folderPath}/{folderType}{snPath}',\n denormalize(req) {\n let { releaseGood, inventoryItems, sftp } = req\n let { folderPath, platform } = sftp\n const folderType: string = sftp.isDevelopment ? `dev` : `prd`\n const snPath: string = SNSUBMITDATAPATH\n const backupPath: string = `${BACKUPPATH}${platform}/${folderType}`\n\n let responseFilePattern: any = JSON.parse(sftp.responseFilePattern)\n const { snSuffix, fileExtension, snRunningNumberDigit, snSequence } = responseFilePattern\n let newSeq: number = parseFloat(snSequence) + 1\n let newSequence = newSeq.toString().padStart(snRunningNumberDigit, '0')\n let newResponseFilePattern: string = JSON.stringify({\n ...responseFilePattern,\n snSequence: newSeq.toString()\n })\n sftp = { ...sftp, responseFilePattern: newResponseFilePattern }\n\n const today = new Date()\n const year = today.getFullYear().toString()\n const month = (today.getMonth() + 1).toString().padStart(2, '0')\n const day = today.getDate().toString().padStart(2, '0')\n const newDate = day + month + year\n\n let title: string = snSuffix ? snSuffix : ``\n title += `_` + newDate\n title += `_` + newSequence\n title += fileExtension ? `.` + fileExtension : ``\n\n let content: string = ''\n const orderNo: string = releaseGood.refNo\n for (let i = 0; i < inventoryItems.length; i++) {\n let serialNumber: string = inventoryItems[i].serialNumber\n content += orderNo + '|' + serialNumber + '\\n'\n }\n\n return {\n resource: { folderPath, folderType, snPath },\n payload: { title, content, sftp, backupPath }\n }\n },\n normalize(res) {\n return res\n }\n }\n}\n"]}
@@ -16,8 +16,11 @@ function createShipment() {
16
16
  const { suffix, fileExtension, runningNumberDigit, sequence } = responseFilePattern;
17
17
  let newSeq = parseFloat(sequence) + 1;
18
18
  let newSequence = newSeq.toString().padStart(runningNumberDigit, '0');
19
- let newResponseFilePattern = JSON.stringify(Object.assign(Object.assign({}, responseFilePattern), { sequence: newSeq.toString() }));
20
- sftp = Object.assign(Object.assign({}, sftp), { responseFilePattern: newResponseFilePattern });
19
+ let newResponseFilePattern = JSON.stringify({
20
+ ...responseFilePattern,
21
+ sequence: newSeq.toString()
22
+ });
23
+ sftp = { ...sftp, responseFilePattern: newResponseFilePattern };
21
24
  const warehouseNumber = releaseGoods[0].refNo2;
22
25
  let title = suffix ? suffix : ``;
23
26
  title += newSequence;
@@ -1 +1 @@
1
- {"version":3,"file":"create-shipment.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/create-shipment.ts"],"names":[],"mappings":"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","sourcesContent":["import { BACKUPPATH, COMPLETEDATAPATH } from '../../../sftp-const'\n\nexport function createShipment() {\n return {\n method: 'post',\n path: '{folderPath}/{folderType}{shipmentCompletePath}',\n denormalize(req) {\n let { releaseGoods, sftp } = req\n let { folderPath, platform } = sftp\n const folderType: string = sftp.isDevelopment ? `dev` : `prd`\n const shipmentCompletePath: string = COMPLETEDATAPATH\n const backupPath: string = `${BACKUPPATH}${platform}/${folderType}`\n\n let responseFilePattern: any = JSON.parse(sftp.responseFilePattern)\n const { suffix, fileExtension, runningNumberDigit, sequence } = responseFilePattern\n let newSeq: number = parseFloat(sequence) + 1\n let newSequence = newSeq.toString().padStart(runningNumberDigit, '0')\n let newResponseFilePattern: string = JSON.stringify({\n ...responseFilePattern,\n sequence: newSeq.toString()\n })\n sftp = { ...sftp, responseFilePattern: newResponseFilePattern }\n\n const warehouseNumber: string = releaseGoods[0].refNo2\n let title: string = suffix ? suffix : ``\n title += newSequence\n title += warehouseNumber ? `_` + warehouseNumber : ``\n title += fileExtension ? `.` + fileExtension : ``\n\n let backupTitle: string = releaseGoods[0].refNo + '_' + title\n const orderNoColumn: number = 15\n const shipmentColumn: number = 27\n const trackingNoColumn: number = 20\n let bulkContent = ''\n for (let releaseGood of releaseGoods) {\n const refNoLength: number = releaseGood.refNo.length\n let content: string = `1710` + releaseGood.refNo\n let spaceNeeded: number = orderNoColumn - refNoLength\n for (let i = 0; i < spaceNeeded; i++) {\n content += ` `\n }\n content += warehouseNumber\n content += `001000001`\n for (let i = 0; i < shipmentColumn; i++) {\n content += ` `\n }\n content += `000000 `\n for (let i = 0; i < trackingNoColumn; i++) {\n content += ` `\n }\n content += `000000000000 `\n const today = new Date()\n const year = today.getFullYear().toString()\n const month = (today.getMonth() + 1).toString().padStart(2, '0')\n const day = today.getDate().toString().padStart(2, '0')\n const newDate = year + month + day\n content += newDate + '\\n'\n\n for (let i = 0; i < releaseGood.orderInventories.length; i++) {\n const orderInventory: any = releaseGood.orderInventories[i]\n let sku: string = orderInventory.product.brandSku\n content += `1810` + releaseGood.refNo\n for (let i = 0; i < spaceNeeded; i++) {\n content += ` `\n }\n const idx = (i + 1).toString().padStart(2, '0')\n const productCode: string = sku.substring(0, 4)\n content += idx + `000000` + productCode\n let productCodeSpaceNeeded = 7 - productCode.length\n for (let i = 0; i < productCodeSpaceNeeded; i++) {\n content += ` `\n }\n const orderedQty = orderInventory.releaseQty.toString().padStart(4, '0')\n const pickedQty = orderInventory.pickedQty.toString().padStart(4, '0')\n content += orderedQty + pickedQty + '\\n'\n }\n bulkContent += content\n }\n return {\n resource: { folderPath, folderType, shipmentCompletePath },\n payload: { title, backupTitle, content: bulkContent, sftp, backupPath }\n }\n },\n normalize(res) {\n return res\n }\n }\n}\n"]}
1
+ {"version":3,"file":"create-shipment.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/create-shipment.ts"],"names":[],"mappings":"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","sourcesContent":["import { BACKUPPATH, COMPLETEDATAPATH } from '../../../sftp-const'\n\nexport function createShipment() {\n return {\n method: 'post',\n path: '{folderPath}/{folderType}{shipmentCompletePath}',\n denormalize(req) {\n let { releaseGoods, sftp } = req\n let { folderPath, platform } = sftp\n const folderType: string = sftp.isDevelopment ? `dev` : `prd`\n const shipmentCompletePath: string = COMPLETEDATAPATH\n const backupPath: string = `${BACKUPPATH}${platform}/${folderType}`\n\n let responseFilePattern: any = JSON.parse(sftp.responseFilePattern)\n const { suffix, fileExtension, runningNumberDigit, sequence } = responseFilePattern\n let newSeq: number = parseFloat(sequence) + 1\n let newSequence = newSeq.toString().padStart(runningNumberDigit, '0')\n let newResponseFilePattern: string = JSON.stringify({\n ...responseFilePattern,\n sequence: newSeq.toString()\n })\n sftp = { ...sftp, responseFilePattern: newResponseFilePattern }\n\n const warehouseNumber: string = releaseGoods[0].refNo2\n let title: string = suffix ? suffix : ``\n title += newSequence\n title += warehouseNumber ? `_` + warehouseNumber : ``\n title += fileExtension ? `.` + fileExtension : ``\n\n let backupTitle: string = releaseGoods[0].refNo + '_' + title\n const orderNoColumn: number = 15\n const shipmentColumn: number = 27\n const trackingNoColumn: number = 20\n let bulkContent = ''\n for (let releaseGood of releaseGoods) {\n const refNoLength: number = releaseGood.refNo.length\n let content: string = `1710` + releaseGood.refNo\n let spaceNeeded: number = orderNoColumn - refNoLength\n for (let i = 0; i < spaceNeeded; i++) {\n content += ` `\n }\n content += warehouseNumber\n content += `001000001`\n for (let i = 0; i < shipmentColumn; i++) {\n content += ` `\n }\n content += `000000 `\n for (let i = 0; i < trackingNoColumn; i++) {\n content += ` `\n }\n content += `000000000000 `\n const today = new Date()\n const year = today.getFullYear().toString()\n const month = (today.getMonth() + 1).toString().padStart(2, '0')\n const day = today.getDate().toString().padStart(2, '0')\n const newDate = year + month + day\n content += newDate + '\\n'\n\n for (let i = 0; i < releaseGood.orderInventories.length; i++) {\n const orderInventory: any = releaseGood.orderInventories[i]\n let sku: string = orderInventory.product.brandSku\n content += `1810` + releaseGood.refNo\n for (let i = 0; i < spaceNeeded; i++) {\n content += ` `\n }\n const idx = (i + 1).toString().padStart(2, '0')\n const productCode: string = sku.substring(0, 4)\n content += idx + `000000` + productCode\n let productCodeSpaceNeeded = 7 - productCode.length\n for (let i = 0; i < productCodeSpaceNeeded; i++) {\n content += ` `\n }\n const orderedQty = orderInventory.releaseQty.toString().padStart(4, '0')\n const pickedQty = orderInventory.pickedQty.toString().padStart(4, '0')\n content += orderedQty + pickedQty + '\\n'\n }\n bulkContent += content\n }\n return {\n resource: { folderPath, folderType, shipmentCompletePath },\n payload: { title, backupTitle, content: bulkContent, sftp, backupPath }\n }\n },\n normalize(res) {\n return res\n }\n }\n}\n"]}
@@ -5,13 +5,13 @@ function echo() {
5
5
  return {
6
6
  path: '/echo',
7
7
  denormalize(req) {
8
- return Object.assign({}, req);
8
+ return { ...req };
9
9
  },
10
10
  normalize(res) {
11
- return Object.assign({}, res);
11
+ return { ...res };
12
12
  },
13
13
  action({ store, method, path, request, platformAction }) {
14
- return Object.assign({}, request);
14
+ return { ...request };
15
15
  }
16
16
  };
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"echo.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/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"]}
1
+ {"version":3,"file":"echo.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/echo.ts"],"names":[],"mappings":";;AAAA,oBAaC;AAbD,SAAgB,IAAI;IAClB,OAAO;QACL,IAAI,EAAE,OAAO;QACb,WAAW,CAAC,GAAG;YACb,OAAO,EAAE,GAAG,GAAG,EAAE,CAAA;QACnB,CAAC;QACD,SAAS,CAAC,GAAG;YACX,OAAO,EAAE,GAAG,GAAG,EAAE,CAAA;QACnB,CAAC;QACD,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE;YACrD,OAAO,EAAE,GAAG,OAAO,EAAE,CAAA;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"]}
@@ -98,8 +98,12 @@ function getOutboundOrder() {
98
98
  isAccept = false;
99
99
  }
100
100
  let orderItems = itemsToPick;
101
- let result = Object.assign(Object.assign({}, orderInfo), { orderInventories: orderItems, isAccept,
102
- checkDuplicationValidation });
101
+ let result = {
102
+ ...orderInfo,
103
+ orderInventories: orderItems,
104
+ isAccept,
105
+ checkDuplicationValidation
106
+ };
103
107
  return result;
104
108
  }
105
109
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get-outbound-order.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/get-outbound-order.ts"],"names":[],"mappings":"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","sourcesContent":["export function getOutboundOrder() {\n return {\n method: 'get',\n path: '{folderPath}/{folderType}/sob/data/{fileKey}',\n denormalize(req) {\n const { folderPath, folderType, fileKey } = req\n return {\n resource: { folderPath, folderType, fileKey }\n }\n },\n normalize(res, { sftp }) {\n const { Order } = res\n let isAccept: boolean = false\n\n const responseFilePattern = JSON.parse(sftp.responseFilePattern)\n const acceptOrderTypes = responseFilePattern.acceptOrderTypes // ['RSO', 'MSO', 'MSBO']\n const acceptNTSStatuses = responseFilePattern.acceptNTSStatuses //['', 'BACKORDER']\n const acceptWarehouseNumber = responseFilePattern.acceptWarehouseNumber //['NK']\n const acceptCommand = responseFilePattern.acceptCommand //['NTS', '']\n const acceptFreightCode = responseFilePattern.acceptFreightCode // ['PU']\n\n let orderHeader: any = Order.OrderHeader\n let generalInfo: any = orderHeader.General\n let distributorDetails: any = orderHeader.DistributorDetails\n let shippingInstructions: any = Order.ShippingInstructions\n\n let orderType: string = generalInfo.OrderType._text\n let ntsStatus: string = generalInfo.NTSStatus._text || ''\n let command: string = generalInfo.Command._text || ''\n let warehouseNumber: string = generalInfo.WarehouseNumber._text\n let freightCode: string = shippingInstructions.FreightCode._text\n\n if (\n acceptWarehouseNumber.includes(warehouseNumber) &&\n acceptOrderTypes.includes(orderType) &&\n acceptNTSStatuses.includes(ntsStatus) &&\n acceptCommand.includes(command) &&\n acceptFreightCode.includes(freightCode)\n ) {\n isAccept = true\n }\n\n let shippingInstruction: string = shippingInstructions.ShippingInstructions._text\n let ntsDateParts = generalInfo.NTS_Date._text.split('/')\n let releaseDate: string = ntsDateParts[2] + '-' + ntsDateParts[1] + '-' + ntsDateParts[0]\n let orderInfo: any = {\n refNo: generalInfo.OrderNumber._text,\n refNo2: warehouseNumber,\n type: 'b2b',\n releaseDate,\n collectionOrderNo: generalInfo.OrderNumber._text,\n marketplaceOrderStatus: ntsStatus,\n ownTransport: true,\n exportOption: false,\n packingOption: false,\n remark: shippingInstruction,\n billTo: {\n billingAddress: distributorDetails.BillTo.BillToAddress._text\n },\n deliverTo: {\n deliveryAddress1: distributorDetails.ShipTo.Address1._text,\n deliveryAddress2: distributorDetails.ShipTo.Address2._text,\n deliveryAddress3: distributorDetails.ShipTo.Address3._text,\n attentionTo: distributorDetails.ShipTo.Name._text,\n city: distributorDetails.ShipTo.City._text,\n state: distributorDetails.ShipTo.ShipToState._text,\n postalCode: distributorDetails.ShipTo.Zipcode._text,\n country: distributorDetails.ShipTo.Country._text,\n phone1: distributorDetails.ShipTo.Phone._text\n }\n }\n\n let OrderLine = Order.PickList\n let totalItems: number = parseFloat(Order.PickList.LinesInPickList._text)\n let itemsToPick: any[] = []\n let checkDuplicationValidation\n if (totalItems == 1) {\n if (parseFloat(OrderLine.Item.QuantityReleased._text) > 0) {\n itemsToPick.push({\n product: {\n sku: OrderLine.Item.StockingSKU._text\n },\n releaseQty: parseFloat(OrderLine.Item.QuantityReleased._text)\n })\n }\n } else {\n OrderLine.Item.map(line => {\n if (parseFloat(line.QuantityReleased._text) > 0) {\n itemsToPick.push({\n product: {\n sku: line.StockingSKU._text\n },\n releaseQty: parseFloat(line.QuantityReleased._text)\n })\n }\n })\n }\n\n if (ntsStatus == 'BACKORDER' && OrderLine.Item.some(itm => itm.QuantityReleased._text == 0)) {\n checkDuplicationValidation = false\n }\n\n if (itemsToPick.length == 0) {\n isAccept = false\n }\n\n let orderItems: any[] = itemsToPick\n\n let result: any = {\n ...orderInfo,\n orderInventories: orderItems,\n isAccept,\n checkDuplicationValidation\n }\n\n return result\n }\n }\n}\n"]}
1
+ {"version":3,"file":"get-outbound-order.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/get-outbound-order.ts"],"names":[],"mappings":";;AAAA,4CAsHC;AAtHD,SAAgB,gBAAgB;IAC9B,OAAO;QACL,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,8CAA8C;QACpD,WAAW,CAAC,GAAG;YACb,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;YAC/C,OAAO;gBACL,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE;aAC9C,CAAA;QACH,CAAC;QACD,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE;YACrB,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAA;YACrB,IAAI,QAAQ,GAAY,KAAK,CAAA;YAE7B,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;YAChE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,CAAA,CAAC,yBAAyB;YACvF,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAA,CAAC,mBAAmB;YACnF,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,qBAAqB,CAAA,CAAC,QAAQ;YAChF,MAAM,aAAa,GAAG,mBAAmB,CAAC,aAAa,CAAA,CAAC,aAAa;YACrE,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,iBAAiB,CAAA,CAAC,SAAS;YAEzE,IAAI,WAAW,GAAQ,KAAK,CAAC,WAAW,CAAA;YACxC,IAAI,WAAW,GAAQ,WAAW,CAAC,OAAO,CAAA;YAC1C,IAAI,kBAAkB,GAAQ,WAAW,CAAC,kBAAkB,CAAA;YAC5D,IAAI,oBAAoB,GAAQ,KAAK,CAAC,oBAAoB,CAAA;YAE1D,IAAI,SAAS,GAAW,WAAW,CAAC,SAAS,CAAC,KAAK,CAAA;YACnD,IAAI,SAAS,GAAW,WAAW,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAA;YACzD,IAAI,OAAO,GAAW,WAAW,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;YACrD,IAAI,eAAe,GAAW,WAAW,CAAC,eAAe,CAAC,KAAK,CAAA;YAC/D,IAAI,WAAW,GAAW,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAA;YAEhE,IACE,qBAAqB,CAAC,QAAQ,CAAC,eAAe,CAAC;gBAC/C,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACpC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACrC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC/B,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,EACvC,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAA;YACjB,CAAC;YAED,IAAI,mBAAmB,GAAW,oBAAoB,CAAC,oBAAoB,CAAC,KAAK,CAAA;YACjF,IAAI,YAAY,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACxD,IAAI,WAAW,GAAW,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;YACzF,IAAI,SAAS,GAAQ;gBACnB,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,KAAK;gBACpC,MAAM,EAAE,eAAe;gBACvB,IAAI,EAAE,KAAK;gBACX,WAAW;gBACX,iBAAiB,EAAE,WAAW,CAAC,WAAW,CAAC,KAAK;gBAChD,sBAAsB,EAAE,SAAS;gBACjC,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,KAAK;gBACnB,aAAa,EAAE,KAAK;gBACpB,MAAM,EAAE,mBAAmB;gBAC3B,MAAM,EAAE;oBACN,cAAc,EAAE,kBAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK;iBAC9D;gBACD,SAAS,EAAE;oBACT,gBAAgB,EAAE,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK;oBAC1D,gBAAgB,EAAE,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK;oBAC1D,gBAAgB,EAAE,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK;oBAC1D,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;oBACjD,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK;oBAC1C,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK;oBAClD,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;oBACnD,OAAO,EAAE,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;oBAChD,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK;iBAC9C;aACF,CAAA;YAED,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAA;YAC9B,IAAI,UAAU,GAAW,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;YACzE,IAAI,WAAW,GAAU,EAAE,CAAA;YAC3B,IAAI,0BAA0B,CAAA;YAC9B,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;gBACpB,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1D,WAAW,CAAC,IAAI,CAAC;wBACf,OAAO,EAAE;4BACP,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK;yBACtC;wBACD,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;oBACxB,IAAI,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;wBAChD,WAAW,CAAC,IAAI,CAAC;4BACf,OAAO,EAAE;gCACP,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK;6BAC5B;4BACD,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;yBACpD,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC5F,0BAA0B,GAAG,KAAK,CAAA;YACpC,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC5B,QAAQ,GAAG,KAAK,CAAA;YAClB,CAAC;YAED,IAAI,UAAU,GAAU,WAAW,CAAA;YAEnC,IAAI,MAAM,GAAQ;gBAChB,GAAG,SAAS;gBACZ,gBAAgB,EAAE,UAAU;gBAC5B,QAAQ;gBACR,0BAA0B;aAC3B,CAAA;YAED,OAAO,MAAM,CAAA;QACf,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["export function getOutboundOrder() {\n return {\n method: 'get',\n path: '{folderPath}/{folderType}/sob/data/{fileKey}',\n denormalize(req) {\n const { folderPath, folderType, fileKey } = req\n return {\n resource: { folderPath, folderType, fileKey }\n }\n },\n normalize(res, { sftp }) {\n const { Order } = res\n let isAccept: boolean = false\n\n const responseFilePattern = JSON.parse(sftp.responseFilePattern)\n const acceptOrderTypes = responseFilePattern.acceptOrderTypes // ['RSO', 'MSO', 'MSBO']\n const acceptNTSStatuses = responseFilePattern.acceptNTSStatuses //['', 'BACKORDER']\n const acceptWarehouseNumber = responseFilePattern.acceptWarehouseNumber //['NK']\n const acceptCommand = responseFilePattern.acceptCommand //['NTS', '']\n const acceptFreightCode = responseFilePattern.acceptFreightCode // ['PU']\n\n let orderHeader: any = Order.OrderHeader\n let generalInfo: any = orderHeader.General\n let distributorDetails: any = orderHeader.DistributorDetails\n let shippingInstructions: any = Order.ShippingInstructions\n\n let orderType: string = generalInfo.OrderType._text\n let ntsStatus: string = generalInfo.NTSStatus._text || ''\n let command: string = generalInfo.Command._text || ''\n let warehouseNumber: string = generalInfo.WarehouseNumber._text\n let freightCode: string = shippingInstructions.FreightCode._text\n\n if (\n acceptWarehouseNumber.includes(warehouseNumber) &&\n acceptOrderTypes.includes(orderType) &&\n acceptNTSStatuses.includes(ntsStatus) &&\n acceptCommand.includes(command) &&\n acceptFreightCode.includes(freightCode)\n ) {\n isAccept = true\n }\n\n let shippingInstruction: string = shippingInstructions.ShippingInstructions._text\n let ntsDateParts = generalInfo.NTS_Date._text.split('/')\n let releaseDate: string = ntsDateParts[2] + '-' + ntsDateParts[1] + '-' + ntsDateParts[0]\n let orderInfo: any = {\n refNo: generalInfo.OrderNumber._text,\n refNo2: warehouseNumber,\n type: 'b2b',\n releaseDate,\n collectionOrderNo: generalInfo.OrderNumber._text,\n marketplaceOrderStatus: ntsStatus,\n ownTransport: true,\n exportOption: false,\n packingOption: false,\n remark: shippingInstruction,\n billTo: {\n billingAddress: distributorDetails.BillTo.BillToAddress._text\n },\n deliverTo: {\n deliveryAddress1: distributorDetails.ShipTo.Address1._text,\n deliveryAddress2: distributorDetails.ShipTo.Address2._text,\n deliveryAddress3: distributorDetails.ShipTo.Address3._text,\n attentionTo: distributorDetails.ShipTo.Name._text,\n city: distributorDetails.ShipTo.City._text,\n state: distributorDetails.ShipTo.ShipToState._text,\n postalCode: distributorDetails.ShipTo.Zipcode._text,\n country: distributorDetails.ShipTo.Country._text,\n phone1: distributorDetails.ShipTo.Phone._text\n }\n }\n\n let OrderLine = Order.PickList\n let totalItems: number = parseFloat(Order.PickList.LinesInPickList._text)\n let itemsToPick: any[] = []\n let checkDuplicationValidation\n if (totalItems == 1) {\n if (parseFloat(OrderLine.Item.QuantityReleased._text) > 0) {\n itemsToPick.push({\n product: {\n sku: OrderLine.Item.StockingSKU._text\n },\n releaseQty: parseFloat(OrderLine.Item.QuantityReleased._text)\n })\n }\n } else {\n OrderLine.Item.map(line => {\n if (parseFloat(line.QuantityReleased._text) > 0) {\n itemsToPick.push({\n product: {\n sku: line.StockingSKU._text\n },\n releaseQty: parseFloat(line.QuantityReleased._text)\n })\n }\n })\n }\n\n if (ntsStatus == 'BACKORDER' && OrderLine.Item.some(itm => itm.QuantityReleased._text == 0)) {\n checkDuplicationValidation = false\n }\n\n if (itemsToPick.length == 0) {\n isAccept = false\n }\n\n let orderItems: any[] = itemsToPick\n\n let result: any = {\n ...orderInfo,\n orderInventories: orderItems,\n isAccept,\n checkDuplicationValidation\n }\n\n return result\n }\n }\n}\n"]}
@@ -13,7 +13,7 @@ class Herbalife {
13
13
  const item = (0, xml_js_1.xml2js)(fileResult, {
14
14
  compact: true
15
15
  });
16
- const result = Object.assign({}, item);
16
+ const result = { ...item };
17
17
  return result;
18
18
  }
19
19
  async post(path, data = {}) {
@@ -1 +1 @@
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,EACJ,KAAK,EACL,WAAW,EACX,OAAO,EACP,IAAI,EACJ,UAAU,EACX,GAA4F,IAAI,CAAA;QAEjG,IAAI,MAAM,GAAU;YAClB;gBACE,KAAK;gBACL,UAAU,EAAE,IAAI;gBAChB,OAAO;aACR;SACF,CAAA;QAED,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,WAAW;gBAClB,UAAU,EAAE,UAAU;gBACtB,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,IAAA,8BAAa,EAAC,MAAM,CAAC,CAAA;QAE3B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAxCD,8BAwCC","sourcesContent":["import '../../sftp-s3'\n\nimport { xml2js } from 'xml-js'\n\nimport { Sftp } from '../../service'\nimport { SFTPFILESTORAGE } from '../../sftp-const'\nimport { generateFiles } from '../../util/generate-files'\n\nconst debug = require('debug')('things-factory:integration-sftp:herbalife')\n\nexport type HerbalifeConfig = {}\n\nexport class Herbalife {\n constructor() {}\n\n async get(path: string, data: any = {}) {\n const fileResult: any = await SFTPFILESTORAGE.readFile(path, 'utf-8')\n const item: any = xml2js(fileResult, {\n compact: true\n })\n const result: any = { ...item }\n return result\n }\n\n async post(path: string, data: any = {}) {\n const {\n title,\n backupTitle,\n content,\n sftp,\n backupPath\n }: { title: string; backupTitle: string; content: string; sftp: Sftp; backupPath: string } = data\n\n let params: any[] = [\n {\n title,\n uploadPath: path,\n content\n }\n ]\n\n if (backupPath) {\n params.push({\n title: backupTitle,\n uploadPath: backupPath,\n content\n })\n }\n await generateFiles(params)\n\n return sftp\n }\n}\n"]}
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,GAAQ,EAAE,GAAG,IAAI,EAAE,CAAA;QAC/B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,OAAY,EAAE;QACrC,MAAM,EACJ,KAAK,EACL,WAAW,EACX,OAAO,EACP,IAAI,EACJ,UAAU,EACX,GAA4F,IAAI,CAAA;QAEjG,IAAI,MAAM,GAAU;YAClB;gBACE,KAAK;gBACL,UAAU,EAAE,IAAI;gBAChB,OAAO;aACR;SACF,CAAA;QAED,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,WAAW;gBAClB,UAAU,EAAE,UAAU;gBACtB,OAAO;aACR,CAAC,CAAA;QACJ,CAAC;QACD,MAAM,IAAA,8BAAa,EAAC,MAAM,CAAC,CAAA;QAE3B,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAxCD,8BAwCC","sourcesContent":["import '../../sftp-s3'\n\nimport { xml2js } from 'xml-js'\n\nimport { Sftp } from '../../service'\nimport { SFTPFILESTORAGE } from '../../sftp-const'\nimport { generateFiles } from '../../util/generate-files'\n\nconst debug = require('debug')('things-factory:integration-sftp:herbalife')\n\nexport type HerbalifeConfig = {}\n\nexport class Herbalife {\n constructor() {}\n\n async get(path: string, data: any = {}) {\n const fileResult: any = await SFTPFILESTORAGE.readFile(path, 'utf-8')\n const item: any = xml2js(fileResult, {\n compact: true\n })\n const result: any = { ...item }\n return result\n }\n\n async post(path: string, data: any = {}) {\n const {\n title,\n backupTitle,\n content,\n sftp,\n backupPath\n }: { title: string; backupTitle: string; content: string; sftp: Sftp; backupPath: string } = data\n\n let params: any[] = [\n {\n title,\n uploadPath: path,\n content\n }\n ]\n\n if (backupPath) {\n params.push({\n title: backupTitle,\n uploadPath: backupPath,\n content\n })\n }\n await generateFiles(params)\n\n return sftp\n }\n}\n"]}
@@ -6,6 +6,7 @@ const shell_1 = require("@things-factory/shell");
6
6
  const service_1 = require("../../service");
7
7
  const decorators_1 = require("./decorators");
8
8
  class SftpAPI {
9
+ static { this.platforms = {}; }
9
10
  static registerPlatform(name, action, apis) {
10
11
  SftpAPI.platforms[name] = {
11
12
  action,
@@ -28,7 +29,6 @@ class SftpAPI {
28
29
  static createSerialNumber(sftp, req) { }
29
30
  }
30
31
  exports.SftpAPI = SftpAPI;
31
- SftpAPI.platforms = {};
32
32
  tslib_1.__decorate([
33
33
  decorators_1.api,
34
34
  tslib_1.__metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/sftp-api/index.ts"],"names":[],"mappings":";;;;AAAA,iDAAqD;AAErD,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,qBAAa,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;IAGM,AAAP,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;IAGvB,AAAP,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;IAGnC,AAAP,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;IAGjC,AAAP,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;;AAhC9C,0BAiCC;AAhCQ,iBAAS,GAAG,EAAE,CAAA;AAsBd;IADN,gBAAG;;;;yBAC0B;AAGvB;IADN,gBAAG;;;;qCACsC;AAGnC;IADN,gBAAG;;;;mCACoC;AAGjC;IADN,gBAAG;;;;uCACwC","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { Sftp } from '../../service'\nimport { api } from './decorators'\n\nexport class SftpAPI {\n static platforms = {}\n\n static registerPlatform(name, action, apis) {\n SftpAPI.platforms[name] = {\n action,\n apis\n }\n }\n\n static getPlatform(name) {\n return SftpAPI.platforms[name]\n }\n\n static async getSftp(id) {\n const repository = getRepository(Sftp)\n return await repository.findOne({\n where: { id },\n relations: ['domain']\n })\n }\n\n @api\n static echo(sftp, req): any {}\n\n @api\n static getOutboundOrder(sftp, req): any {}\n\n @api\n static createShipment(sftp, req): any {}\n\n @api\n static createSerialNumber(sftp, req): any {}\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/sftp-api/index.ts"],"names":[],"mappings":";;;;AAAA,iDAAqD;AAErD,2CAAoC;AACpC,6CAAkC;AAElC,MAAa,OAAO;aACX,cAAS,GAAG,EAAE,CAAA;IAErB,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,qBAAa,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;IAGM,AAAP,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;IAGvB,AAAP,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;IAGnC,AAAP,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;IAGjC,AAAP,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG,IAAQ,CAAC;;AAhC9C,0BAiCC;AAVQ;IADN,gBAAG;;;;yBAC0B;AAGvB;IADN,gBAAG;;;;qCACsC;AAGnC;IADN,gBAAG;;;;mCACoC;AAGjC;IADN,gBAAG;;;;uCACwC","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { Sftp } from '../../service'\nimport { api } from './decorators'\n\nexport class SftpAPI {\n static platforms = {}\n\n static registerPlatform(name, action, apis) {\n SftpAPI.platforms[name] = {\n action,\n apis\n }\n }\n\n static getPlatform(name) {\n return SftpAPI.platforms[name]\n }\n\n static async getSftp(id) {\n const repository = getRepository(Sftp)\n return await repository.findOne({\n where: { id },\n relations: ['domain']\n })\n }\n\n @api\n static echo(sftp, req): any {}\n\n @api\n static getOutboundOrder(sftp, req): any {}\n\n @api\n static createShipment(sftp, req): any {}\n\n @api\n static createSerialNumber(sftp, req): any {}\n}\n"]}
@@ -18,7 +18,12 @@ const sftp_type_1 = require("./sftp-type");
18
18
  let SftpMutation = class SftpMutation {
19
19
  async createSftp(sftp, context) {
20
20
  const { domain, user, tx } = context.state;
21
- return await tx.getRepository(sftp_1.Sftp).save(Object.assign(Object.assign({}, sftp), { domain, creator: user, updater: user }));
21
+ return await tx.getRepository(sftp_1.Sftp).save({
22
+ ...sftp,
23
+ domain,
24
+ creator: user,
25
+ updater: user
26
+ });
22
27
  }
23
28
  async updateSftp(id, patch, context) {
24
29
  const { domain, user, tx } = context.state;
@@ -26,7 +31,11 @@ let SftpMutation = class SftpMutation {
26
31
  const sftp = await repository.findOne({
27
32
  where: { domain: { id: domain.id }, id }
28
33
  });
29
- return await repository.save(Object.assign(Object.assign(Object.assign({}, sftp), patch), { updater: user }));
34
+ return await repository.save({
35
+ ...sftp,
36
+ ...patch,
37
+ updater: user
38
+ });
30
39
  }
31
40
  async updateMultipleSftp(patches, context) {
32
41
  const { domain, user, tx } = context.state;
@@ -37,16 +46,25 @@ let SftpMutation = class SftpMutation {
37
46
  if (_createRecords.length > 0) {
38
47
  for (let i = 0; i < _createRecords.length; i++) {
39
48
  const newRecord = _createRecords[i];
40
- const result = await sftpRepo.save(Object.assign(Object.assign({}, newRecord), { domain, creator: user, updater: user }));
41
- results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
49
+ const result = await sftpRepo.save({
50
+ ...newRecord,
51
+ domain,
52
+ creator: user,
53
+ updater: user
54
+ });
55
+ results.push({ ...result, cuFlag: '+' });
42
56
  }
43
57
  }
44
58
  if (_updateRecords.length > 0) {
45
59
  for (let i = 0; i < _updateRecords.length; i++) {
46
60
  const newRecord = _updateRecords[i];
47
61
  const sftp = await sftpRepo.findOneBy({ id: newRecord.id });
48
- const result = await sftpRepo.save(Object.assign(Object.assign(Object.assign({}, sftp), newRecord), { updater: user }));
49
- results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
62
+ const result = await sftpRepo.save({
63
+ ...sftp,
64
+ ...newRecord,
65
+ updater: user
66
+ });
67
+ results.push({ ...result, cuFlag: 'M' });
50
68
  }
51
69
  }
52
70
  return results;
@@ -168,7 +186,6 @@ exports.SftpMutation = SftpMutation = tslib_1.__decorate([
168
186
  (0, type_graphql_1.Resolver)(sftp_1.Sftp)
169
187
  ], SftpMutation);
170
188
  async function processSftp(sftpUser, context, customerBizplaceId) {
171
- var _a, e_1, _b, _c;
172
189
  const fulfilmentCenter = sftpUser.fulfillmentCenter;
173
190
  const isDevelopment = sftpUser.isDevelopment;
174
191
  const folderPath = sftpUser.folderPath;
@@ -176,54 +193,42 @@ async function processSftp(sftpUser, context, customerBizplaceId) {
176
193
  let initialDataPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.SUBMITDATAPATH}/`;
177
194
  const results = await (0, util_1.getPermittedDirectories)({ path: initialDataPath }, context);
178
195
  const filesDirectories = results.filter(result => result.Size > 0);
179
- try {
180
- for (var _d = true, filesDirectories_1 = tslib_1.__asyncValues(filesDirectories), filesDirectories_1_1; filesDirectories_1_1 = await filesDirectories_1.next(), _a = filesDirectories_1_1.done, !_a; _d = true) {
181
- _c = filesDirectories_1_1.value;
182
- _d = false;
183
- let fileDirectory = _c;
184
- let dataPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.SUBMITDATAPATH}/`;
185
- let successPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.SUCCESSDATAPATH}/`;
186
- let failedPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.FAILEDDATAPATH}/`;
187
- const fileKey = fileDirectory.Key;
188
- const lastSlashIdx = fileKey.lastIndexOf('/');
189
- const fileString = fileKey.substring(lastSlashIdx + 1, fileKey.length);
190
- try {
191
- const sftp = sftpUser;
192
- let result = await controllers_1.SftpAPI.getOutboundOrder(sftp, { folderPath, folderType, fileKey: fileString });
193
- let isAccept = result.isAccept;
194
- if (isAccept) {
195
- delete result.isAccept;
196
- if (result) {
197
- let { items: releaseOrders } = await integration_fulfillment_1.FulfillmentAPI.getOutboundOrders(fulfilmentCenter, {
198
- customerBizplaceId,
199
- refNo: result.refNo
200
- });
201
- if (releaseOrders) {
202
- result.collectionOrderNo = result.collectionOrderNo + ' - ' + (releaseOrders.length + 1);
203
- }
204
- result.requiredDraft = false;
205
- const releaseOrder = await integration_fulfillment_1.FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {
206
- customerBizplaceId,
207
- releaseOrder: result
208
- });
209
- if (releaseOrder) {
210
- let movePaths = {
211
- source: (dataPath += fileString),
212
- destination: (successPath += fileString)
213
- };
214
- await sftp_const_1.SFTPFILESTORAGE.moveFile(movePaths);
215
- }
196
+ for await (let fileDirectory of filesDirectories) {
197
+ let dataPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.SUBMITDATAPATH}/`;
198
+ let successPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.SUCCESSDATAPATH}/`;
199
+ let failedPath = `${sftpUser.folderPath}/${folderType}${sftp_const_1.FAILEDDATAPATH}/`;
200
+ const fileKey = fileDirectory.Key;
201
+ const lastSlashIdx = fileKey.lastIndexOf('/');
202
+ const fileString = fileKey.substring(lastSlashIdx + 1, fileKey.length);
203
+ try {
204
+ const sftp = sftpUser;
205
+ let result = await controllers_1.SftpAPI.getOutboundOrder(sftp, { folderPath, folderType, fileKey: fileString });
206
+ let isAccept = result.isAccept;
207
+ if (isAccept) {
208
+ delete result.isAccept;
209
+ if (result) {
210
+ let { items: releaseOrders } = await integration_fulfillment_1.FulfillmentAPI.getOutboundOrders(fulfilmentCenter, {
211
+ customerBizplaceId,
212
+ refNo: result.refNo
213
+ });
214
+ if (releaseOrders) {
215
+ result.collectionOrderNo = result.collectionOrderNo + ' - ' + (releaseOrders.length + 1);
216
+ }
217
+ result.requiredDraft = false;
218
+ const releaseOrder = await integration_fulfillment_1.FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {
219
+ customerBizplaceId,
220
+ releaseOrder: result
221
+ });
222
+ if (releaseOrder) {
223
+ let movePaths = {
224
+ source: (dataPath += fileString),
225
+ destination: (successPath += fileString)
226
+ };
227
+ await sftp_const_1.SFTPFILESTORAGE.moveFile(movePaths);
216
228
  }
217
- }
218
- else {
219
- let movePaths = {
220
- source: (dataPath += fileString),
221
- destination: (failedPath += fileString)
222
- };
223
- await sftp_const_1.SFTPFILESTORAGE.moveFile(movePaths);
224
229
  }
225
230
  }
226
- catch (e) {
231
+ else {
227
232
  let movePaths = {
228
233
  source: (dataPath += fileString),
229
234
  destination: (failedPath += fileString)
@@ -231,13 +236,13 @@ async function processSftp(sftpUser, context, customerBizplaceId) {
231
236
  await sftp_const_1.SFTPFILESTORAGE.moveFile(movePaths);
232
237
  }
233
238
  }
234
- }
235
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
236
- finally {
237
- try {
238
- if (!_d && !_a && (_b = filesDirectories_1.return)) await _b.call(filesDirectories_1);
239
+ catch (e) {
240
+ let movePaths = {
241
+ source: (dataPath += fileString),
242
+ destination: (failedPath += fileString)
243
+ };
244
+ await sftp_const_1.SFTPFILESTORAGE.moveFile(movePaths);
239
245
  }
240
- finally { if (e_1) throw e_1.error; }
241
246
  }
242
247
  }
243
248
  async function getCustomerBizplace(customerDomainId, tx) {
@@ -1 +1 @@
1
- {"version":3,"file":"sftp-mutation.js","sourceRoot":"","sources":["../../../server/service/sftp/sftp-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import '../../sftp-s3'\n\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, getConnection, In } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'\nimport { Domain } from '@things-factory/shell'\n\nimport { SftpAPI } from '../../controllers'\nimport { FAILEDDATAPATH, SFTPFILESTORAGE, SUBMITDATAPATH, SUCCESSDATAPATH } from '../../sftp-const'\nimport { getPermittedDirectories } from '../../util'\nimport { Sftp, SftpStatus } from './sftp'\nimport { NewSftp, SftpPatch } from './sftp-type'\n\n@Resolver(Sftp)\nexport class SftpMutation {\n @Directive('@transaction')\n @Mutation(returns => Sftp, { description: 'To create new Sftp' })\n async createSftp(@Arg('sftp') sftp: NewSftp, @Ctx() context: ResolverContext): Promise<Sftp> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(Sftp).save({\n ...sftp,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Sftp, { description: 'To modify Sftp information' })\n async updateSftp(\n @Arg('id') id: string,\n @Arg('patch') patch: SftpPatch,\n @Ctx() context: ResolverContext\n ): Promise<Sftp> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(Sftp)\n const sftp = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n return await repository.save({\n ...sftp,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [Sftp], { description: \"To modify multiple Sftps' information\" })\n async updateMultipleSftp(\n @Arg('patches', type => [SftpPatch]) patches: SftpPatch[],\n @Ctx() context: ResolverContext\n ): Promise<Sftp[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const sftpRepo = tx.getRepository(Sftp)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await sftpRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const sftp = await sftpRepo.findOneBy({ id: newRecord.id })\n\n const result = await sftpRepo.save({\n ...sftp,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete Sftp' })\n async deleteSftp(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Sftp).delete({ domain: { id: domain.id }, id })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple sftps' })\n async deleteSftps(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Sftp).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Mutation(returns => Boolean, { description: 'To sync all orders from sftp' })\n async syncSftpOrders(\n @Arg('customerDomainId', type => String) customerDomainId: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n await getConnection().transaction(async (tx: EntityManager) => {\n const customerDomain: Domain = await tx.getRepository(Domain).findOneBy({ id: customerDomainId })\n\n const customerBizplace: Bizplace = await getCustomerBizplace(customerDomainId, tx)\n\n const sftpUsers: Sftp[] = await tx.getRepository(Sftp).find({\n where: { domain: { id: customerDomainId }, status: SftpStatus.ACTIVE },\n relations: ['fulfillmentCenter']\n })\n\n for (var i = 0; i < sftpUsers.length; i++) {\n const sftpUser: Sftp = sftpUsers[i]\n processSftp(sftpUser, context, customerBizplace.id)\n }\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'Calls syncSftpOrders for all domain Ids' })\n async syncAllSftpOrders(@Ctx() context: ResolverContext): Promise<Boolean> {\n try {\n await getConnection().transaction(async tx => {\n const sftps = await tx\n .getRepository(Sftp)\n .createQueryBuilder('s')\n .where('s.status = :status', { status: 'ACTIVE' })\n .getMany()\n\n if (sftps.length === 0) return\n for (const sftp of sftps) {\n const customerBizplace = await getCustomerBizplace(sftp.domainId, tx)\n await processSftp(sftp, context, customerBizplace.id)\n }\n })\n } catch (e) {\n console.log(e)\n }\n return true\n }\n}\n\nexport async function processSftp(sftpUser, context, customerBizplaceId) {\n const fulfilmentCenter: FulfillmentCenter = sftpUser.fulfillmentCenter\n const isDevelopment: boolean = sftpUser.isDevelopment\n const folderPath: string = sftpUser.folderPath\n const folderType: string = isDevelopment ? 'dev' : 'prd'\n let initialDataPath: string = `${sftpUser.folderPath}/${folderType}${SUBMITDATAPATH}/`\n const results: any[] = await getPermittedDirectories({ path: initialDataPath }, context)\n const filesDirectories: any[] = results.filter(result => result.Size > 0)\n\n for await (let fileDirectory of filesDirectories) {\n let dataPath: string = `${sftpUser.folderPath}/${folderType}${SUBMITDATAPATH}/`\n let successPath: string = `${sftpUser.folderPath}/${folderType}${SUCCESSDATAPATH}/`\n let failedPath: string = `${sftpUser.folderPath}/${folderType}${FAILEDDATAPATH}/`\n const fileKey: string = fileDirectory.Key\n const lastSlashIdx = fileKey.lastIndexOf('/')\n const fileString: string = fileKey.substring(lastSlashIdx + 1, fileKey.length)\n try {\n const sftp: any = sftpUser\n let result: any = await SftpAPI.getOutboundOrder(sftp, { folderPath, folderType, fileKey: fileString })\n let isAccept: boolean = result.isAccept\n\n if (isAccept) {\n delete result.isAccept\n if (result) {\n let { items: releaseOrders }: any = await FulfillmentAPI.getOutboundOrders(fulfilmentCenter, {\n customerBizplaceId,\n refNo: result.refNo\n })\n\n if (releaseOrders) {\n result.collectionOrderNo = result.collectionOrderNo + ' - ' + (releaseOrders.length + 1)\n }\n\n result.requiredDraft = false\n\n const releaseOrder: any = await FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {\n customerBizplaceId,\n releaseOrder: result\n })\n\n if (releaseOrder) {\n let movePaths = {\n source: (dataPath += fileString),\n destination: (successPath += fileString)\n }\n await SFTPFILESTORAGE.moveFile(movePaths)\n }\n }\n } else {\n let movePaths = {\n source: (dataPath += fileString),\n destination: (failedPath += fileString)\n }\n await SFTPFILESTORAGE.moveFile(movePaths)\n }\n } catch (e) {\n let movePaths = {\n source: (dataPath += fileString),\n destination: (failedPath += fileString)\n }\n await SFTPFILESTORAGE.moveFile(movePaths)\n }\n }\n}\n\nexport async function getCustomerBizplace(customerDomainId, tx): Promise<Bizplace> {\n const customerDomain: Domain = await tx.getRepository(Domain).findOneBy({ id: customerDomainId })\n\n const customerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({\n where: { domain: { id: customerDomain.id } }\n })\n\n return customerBizplace\n}\n"]}
1
+ {"version":3,"file":"sftp-mutation.js","sourceRoot":"","sources":["../../../server/service/sftp/sftp-mutation.ts"],"names":[],"mappings":";;;AAuKA,kCA+DC;AAED,kDAQC;;AAhPD,yBAAsB;AAEtB,+CAAsE;AACtE,qCAA0D;AAE1D,uDAAmD;AACnD,qFAA2F;AAC3F,iDAA8C;AAE9C,mDAA2C;AAC3C,iDAAmG;AACnG,qCAAoD;AACpD,iCAAyC;AACzC,2CAAgD;AAGzC,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGjB,AAAN,KAAK,CAAC,UAAU,CAAc,IAAa,EAAS,OAAwB;QAC1E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAC,IAAI,CAAC;YACvC,GAAG,IAAI;YACP,MAAM;YACN,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,UAAU,CACH,EAAU,EACP,KAAgB,EACvB,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAA;QACzC,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACpC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;SACzC,CAAC,CAAA;QAEF,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC;YAC3B,GAAG,IAAI;YACP,GAAG,KAAK;YACR,OAAO,EAAE,IAAI;SACd,CAAC,CAAA;IACJ,CAAC;IAIK,AAAN,KAAK,CAAC,kBAAkB,CACe,OAAoB,EAClD,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,QAAQ,GAAG,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAA;QAEvC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBAEnC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;oBACjC,GAAG,SAAS;oBACZ,MAAM;oBACN,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;iBACd,CAAC,CAAA;gBAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBACnC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;gBAE3D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC;oBACjC,GAAG,IAAI;oBACP,GAAG,SAAS;oBACZ,OAAO,EAAE,IAAI;iBACd,CAAC,CAAA;gBAEF,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAIK,AAAN,KAAK,CAAC,UAAU,CAAY,EAAU,EAAS,OAAwB;QACrE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QACtE,OAAO,IAAI,CAAA;IACb,CAAC;IAIK,AAAN,KAAK,CAAC,WAAW,CAA+B,GAAa,EAAS,OAAwB;QAC5F,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAC,MAAM,CAAC;YAClC,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAGK,AAAN,KAAK,CAAC,cAAc,CACuB,gBAAwB,EAC1D,OAAwB;QAE/B,MAAM,IAAA,uBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAE,EAAiB,EAAE,EAAE;YAC5D,MAAM,cAAc,GAAW,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAA;YAEjG,MAAM,gBAAgB,GAAa,MAAM,mBAAmB,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAA;YAElF,MAAM,SAAS,GAAW,MAAM,EAAE,CAAC,aAAa,CAAC,WAAI,CAAC,CAAC,IAAI,CAAC;gBAC1D,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,iBAAU,CAAC,MAAM,EAAE;gBACtE,SAAS,EAAE,CAAC,mBAAmB,CAAC;aACjC,CAAC,CAAA;YAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,QAAQ,GAAS,SAAS,CAAC,CAAC,CAAC,CAAA;gBACnC,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAA;YACrD,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAIK,AAAN,KAAK,CAAC,iBAAiB,CAAQ,OAAwB;QACrD,IAAI,CAAC;YACH,MAAM,IAAA,uBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;gBAC3C,MAAM,KAAK,GAAG,MAAM,EAAE;qBACnB,aAAa,CAAC,WAAI,CAAC;qBACnB,kBAAkB,CAAC,GAAG,CAAC;qBACvB,KAAK,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;qBACjD,OAAO,EAAE,CAAA;gBAEZ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAM;gBAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;oBACrE,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAC,EAAE,CAAC,CAAA;gBACvD,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAChB,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AArJY,oCAAY;AAGjB;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,WAAI,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;IAC/C,mBAAA,IAAA,kBAAG,EAAC,MAAM,CAAC,CAAA;IAAiB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAAf,mBAAO;;8CAS1C;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,WAAI,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;IAEtE,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IACT,mBAAA,IAAA,kBAAG,EAAC,OAAO,CAAC,CAAA;IACZ,mBAAA,IAAA,kBAAG,GAAE,CAAA;;qDADe,qBAAS;;8CAe/B;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,WAAI,CAAC,EAAE,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC;IAEnF,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,qBAAS,CAAC,CAAC,CAAA;IACnC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;sDAwCP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAC9C,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;8CAK7C;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IACvD,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAAiB,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;+CASpE;AAGK;IADL,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;IAE3E,mBAAA,IAAA,kBAAG,EAAC,kBAAkB,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;IACvC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;kDAmBP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE,CAAC;IAChE,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;qDAmB7B;uBApJU,YAAY;IADxB,IAAA,uBAAQ,EAAC,WAAI,CAAC;GACF,YAAY,CAqJxB;AAEM,KAAK,UAAU,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,kBAAkB;IACrE,MAAM,gBAAgB,GAAsB,QAAQ,CAAC,iBAAiB,CAAA;IACtE,MAAM,aAAa,GAAY,QAAQ,CAAC,aAAa,CAAA;IACrD,MAAM,UAAU,GAAW,QAAQ,CAAC,UAAU,CAAA;IAC9C,MAAM,UAAU,GAAW,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;IACxD,IAAI,eAAe,GAAW,GAAG,QAAQ,CAAC,UAAU,IAAI,UAAU,GAAG,2BAAc,GAAG,CAAA;IACtF,MAAM,OAAO,GAAU,MAAM,IAAA,8BAAuB,EAAC,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,CAAA;IACxF,MAAM,gBAAgB,GAAU,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;IAEzE,IAAI,KAAK,EAAE,IAAI,aAAa,IAAI,gBAAgB,EAAE,CAAC;QACjD,IAAI,QAAQ,GAAW,GAAG,QAAQ,CAAC,UAAU,IAAI,UAAU,GAAG,2BAAc,GAAG,CAAA;QAC/E,IAAI,WAAW,GAAW,GAAG,QAAQ,CAAC,UAAU,IAAI,UAAU,GAAG,4BAAe,GAAG,CAAA;QACnF,IAAI,UAAU,GAAW,GAAG,QAAQ,CAAC,UAAU,IAAI,UAAU,GAAG,2BAAc,GAAG,CAAA;QACjF,MAAM,OAAO,GAAW,aAAa,CAAC,GAAG,CAAA;QACzC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC7C,MAAM,UAAU,GAAW,OAAO,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QAC9E,IAAI,CAAC;YACH,MAAM,IAAI,GAAQ,QAAQ,CAAA;YAC1B,IAAI,MAAM,GAAQ,MAAM,qBAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;YACvG,IAAI,QAAQ,GAAY,MAAM,CAAC,QAAQ,CAAA;YAEvC,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,MAAM,CAAC,QAAQ,CAAA;gBACtB,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,GAAQ,MAAM,wCAAc,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;wBAC3F,kBAAkB;wBAClB,KAAK,EAAE,MAAM,CAAC,KAAK;qBACpB,CAAC,CAAA;oBAEF,IAAI,aAAa,EAAE,CAAC;wBAClB,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,GAAG,KAAK,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;oBAC1F,CAAC;oBAED,MAAM,CAAC,aAAa,GAAG,KAAK,CAAA;oBAE5B,MAAM,YAAY,GAAQ,MAAM,wCAAc,CAAC,mBAAmB,CAAC,gBAAgB,EAAE;wBACnF,kBAAkB;wBAClB,YAAY,EAAE,MAAM;qBACrB,CAAC,CAAA;oBAEF,IAAI,YAAY,EAAE,CAAC;wBACjB,IAAI,SAAS,GAAG;4BACd,MAAM,EAAE,CAAC,QAAQ,IAAI,UAAU,CAAC;4BAChC,WAAW,EAAE,CAAC,WAAW,IAAI,UAAU,CAAC;yBACzC,CAAA;wBACD,MAAM,4BAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,SAAS,GAAG;oBACd,MAAM,EAAE,CAAC,QAAQ,IAAI,UAAU,CAAC;oBAChC,WAAW,EAAE,CAAC,UAAU,IAAI,UAAU,CAAC;iBACxC,CAAA;gBACD,MAAM,4BAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,SAAS,GAAG;gBACd,MAAM,EAAE,CAAC,QAAQ,IAAI,UAAU,CAAC;gBAChC,WAAW,EAAE,CAAC,UAAU,IAAI,UAAU,CAAC;aACxC,CAAA;YACD,MAAM,4BAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,gBAAgB,EAAE,EAAE;IAC5D,MAAM,cAAc,GAAW,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAEjG,MAAM,gBAAgB,GAAa,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;QAC1E,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE;KAC7C,CAAC,CAAA;IAEF,OAAO,gBAAgB,CAAA;AACzB,CAAC","sourcesContent":["import '../../sftp-s3'\n\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, getConnection, In } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport { FulfillmentAPI, FulfillmentCenter } from '@things-factory/integration-fulfillment'\nimport { Domain } from '@things-factory/shell'\n\nimport { SftpAPI } from '../../controllers'\nimport { FAILEDDATAPATH, SFTPFILESTORAGE, SUBMITDATAPATH, SUCCESSDATAPATH } from '../../sftp-const'\nimport { getPermittedDirectories } from '../../util'\nimport { Sftp, SftpStatus } from './sftp'\nimport { NewSftp, SftpPatch } from './sftp-type'\n\n@Resolver(Sftp)\nexport class SftpMutation {\n @Directive('@transaction')\n @Mutation(returns => Sftp, { description: 'To create new Sftp' })\n async createSftp(@Arg('sftp') sftp: NewSftp, @Ctx() context: ResolverContext): Promise<Sftp> {\n const { domain, user, tx } = context.state\n\n return await tx.getRepository(Sftp).save({\n ...sftp,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Sftp, { description: 'To modify Sftp information' })\n async updateSftp(\n @Arg('id') id: string,\n @Arg('patch') patch: SftpPatch,\n @Ctx() context: ResolverContext\n ): Promise<Sftp> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(Sftp)\n const sftp = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n return await repository.save({\n ...sftp,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => [Sftp], { description: \"To modify multiple Sftps' information\" })\n async updateMultipleSftp(\n @Arg('patches', type => [SftpPatch]) patches: SftpPatch[],\n @Ctx() context: ResolverContext\n ): Promise<Sftp[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const sftpRepo = tx.getRepository(Sftp)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await sftpRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const sftp = await sftpRepo.findOneBy({ id: newRecord.id })\n\n const result = await sftpRepo.save({\n ...sftp,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete Sftp' })\n async deleteSftp(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Sftp).delete({ domain: { id: domain.id }, id })\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple sftps' })\n async deleteSftps(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(Sftp).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Mutation(returns => Boolean, { description: 'To sync all orders from sftp' })\n async syncSftpOrders(\n @Arg('customerDomainId', type => String) customerDomainId: string,\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n await getConnection().transaction(async (tx: EntityManager) => {\n const customerDomain: Domain = await tx.getRepository(Domain).findOneBy({ id: customerDomainId })\n\n const customerBizplace: Bizplace = await getCustomerBizplace(customerDomainId, tx)\n\n const sftpUsers: Sftp[] = await tx.getRepository(Sftp).find({\n where: { domain: { id: customerDomainId }, status: SftpStatus.ACTIVE },\n relations: ['fulfillmentCenter']\n })\n\n for (var i = 0; i < sftpUsers.length; i++) {\n const sftpUser: Sftp = sftpUsers[i]\n processSftp(sftpUser, context, customerBizplace.id)\n }\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'Calls syncSftpOrders for all domain Ids' })\n async syncAllSftpOrders(@Ctx() context: ResolverContext): Promise<Boolean> {\n try {\n await getConnection().transaction(async tx => {\n const sftps = await tx\n .getRepository(Sftp)\n .createQueryBuilder('s')\n .where('s.status = :status', { status: 'ACTIVE' })\n .getMany()\n\n if (sftps.length === 0) return\n for (const sftp of sftps) {\n const customerBizplace = await getCustomerBizplace(sftp.domainId, tx)\n await processSftp(sftp, context, customerBizplace.id)\n }\n })\n } catch (e) {\n console.log(e)\n }\n return true\n }\n}\n\nexport async function processSftp(sftpUser, context, customerBizplaceId) {\n const fulfilmentCenter: FulfillmentCenter = sftpUser.fulfillmentCenter\n const isDevelopment: boolean = sftpUser.isDevelopment\n const folderPath: string = sftpUser.folderPath\n const folderType: string = isDevelopment ? 'dev' : 'prd'\n let initialDataPath: string = `${sftpUser.folderPath}/${folderType}${SUBMITDATAPATH}/`\n const results: any[] = await getPermittedDirectories({ path: initialDataPath }, context)\n const filesDirectories: any[] = results.filter(result => result.Size > 0)\n\n for await (let fileDirectory of filesDirectories) {\n let dataPath: string = `${sftpUser.folderPath}/${folderType}${SUBMITDATAPATH}/`\n let successPath: string = `${sftpUser.folderPath}/${folderType}${SUCCESSDATAPATH}/`\n let failedPath: string = `${sftpUser.folderPath}/${folderType}${FAILEDDATAPATH}/`\n const fileKey: string = fileDirectory.Key\n const lastSlashIdx = fileKey.lastIndexOf('/')\n const fileString: string = fileKey.substring(lastSlashIdx + 1, fileKey.length)\n try {\n const sftp: any = sftpUser\n let result: any = await SftpAPI.getOutboundOrder(sftp, { folderPath, folderType, fileKey: fileString })\n let isAccept: boolean = result.isAccept\n\n if (isAccept) {\n delete result.isAccept\n if (result) {\n let { items: releaseOrders }: any = await FulfillmentAPI.getOutboundOrders(fulfilmentCenter, {\n customerBizplaceId,\n refNo: result.refNo\n })\n\n if (releaseOrders) {\n result.collectionOrderNo = result.collectionOrderNo + ' - ' + (releaseOrders.length + 1)\n }\n\n result.requiredDraft = false\n\n const releaseOrder: any = await FulfillmentAPI.createOutboundOrder(fulfilmentCenter, {\n customerBizplaceId,\n releaseOrder: result\n })\n\n if (releaseOrder) {\n let movePaths = {\n source: (dataPath += fileString),\n destination: (successPath += fileString)\n }\n await SFTPFILESTORAGE.moveFile(movePaths)\n }\n }\n } else {\n let movePaths = {\n source: (dataPath += fileString),\n destination: (failedPath += fileString)\n }\n await SFTPFILESTORAGE.moveFile(movePaths)\n }\n } catch (e) {\n let movePaths = {\n source: (dataPath += fileString),\n destination: (failedPath += fileString)\n }\n await SFTPFILESTORAGE.moveFile(movePaths)\n }\n }\n}\n\nexport async function getCustomerBizplace(customerDomainId, tx): Promise<Bizplace> {\n const customerDomain: Domain = await tx.getRepository(Domain).findOneBy({ id: customerDomainId })\n\n const customerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({\n where: { domain: { id: customerDomain.id } }\n })\n\n return customerBizplace\n}\n"]}