@things-factory/integration-sftp 9.0.0-beta.8 → 9.0.0-beta.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-server/controllers/herbalife/apis/create-serial-number.js +5 -2
- package/dist-server/controllers/herbalife/apis/create-serial-number.js.map +1 -1
- package/dist-server/controllers/herbalife/apis/create-shipment.js +5 -2
- package/dist-server/controllers/herbalife/apis/create-shipment.js.map +1 -1
- package/dist-server/controllers/herbalife/apis/echo.js +3 -3
- package/dist-server/controllers/herbalife/apis/echo.js.map +1 -1
- package/dist-server/controllers/herbalife/apis/get-outbound-order.js +6 -2
- package/dist-server/controllers/herbalife/apis/get-outbound-order.js.map +1 -1
- package/dist-server/controllers/herbalife/herbalife.js +1 -1
- package/dist-server/controllers/herbalife/herbalife.js.map +1 -1
- package/dist-server/controllers/sftp-api/index.js +1 -1
- package/dist-server/controllers/sftp-api/index.js.map +1 -1
- package/dist-server/service/sftp/sftp-mutation.js +63 -58
- package/dist-server/service/sftp/sftp-mutation.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
@@ -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(
|
20
|
-
|
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,
|
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(
|
20
|
-
|
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":";;AAEA,wCAqFC;AAvFD,oDAAkE;AAElE,SAAgB,cAAc;IAC5B,OAAO;QACL,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iDAAiD;QACvD,WAAW,CAAC,GAAG;YACb,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;YAChC,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,oBAAoB,GAAW,6BAAgB,CAAA;YACrD,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,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAA;YACnF,IAAI,MAAM,GAAW,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YAC7C,IAAI,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;YACrE,IAAI,sBAAsB,GAAW,IAAI,CAAC,SAAS,
|
1
|
+
{"version":3,"file":"create-shipment.js","sourceRoot":"","sources":["../../../../server/controllers/herbalife/apis/create-shipment.ts"],"names":[],"mappings":";;AAEA,wCAqFC;AAvFD,oDAAkE;AAElE,SAAgB,cAAc;IAC5B,OAAO;QACL,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iDAAiD;QACvD,WAAW,CAAC,GAAG;YACb,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;YAChC,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,oBAAoB,GAAW,6BAAgB,CAAA;YACrD,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,MAAM,EAAE,aAAa,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAA;YACnF,IAAI,MAAM,GAAW,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YAC7C,IAAI,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAA;YACrE,IAAI,sBAAsB,GAAW,IAAI,CAAC,SAAS,CAAC;gBAClD,GAAG,mBAAmB;gBACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;aAC5B,CAAC,CAAA;YACF,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,CAAA;YAE/D,MAAM,eAAe,GAAW,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YACtD,IAAI,KAAK,GAAW,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;YACxC,KAAK,IAAI,WAAW,CAAA;YACpB,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAA;YACrD,KAAK,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,CAAA;YAEjD,IAAI,WAAW,GAAW,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,KAAK,CAAA;YAC7D,MAAM,aAAa,GAAW,EAAE,CAAA;YAChC,MAAM,cAAc,GAAW,EAAE,CAAA;YACjC,MAAM,gBAAgB,GAAW,EAAE,CAAA;YACnC,IAAI,WAAW,GAAG,EAAE,CAAA;YACpB,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;gBACrC,MAAM,WAAW,GAAW,WAAW,CAAC,KAAK,CAAC,MAAM,CAAA;gBACpD,IAAI,OAAO,GAAW,MAAM,GAAG,WAAW,CAAC,KAAK,CAAA;gBAChD,IAAI,WAAW,GAAW,aAAa,GAAG,WAAW,CAAA;gBACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,OAAO,IAAI,GAAG,CAAA;gBAChB,CAAC;gBACD,OAAO,IAAI,eAAe,CAAA;gBAC1B,OAAO,IAAI,WAAW,CAAA;gBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxC,OAAO,IAAI,GAAG,CAAA;gBAChB,CAAC;gBACD,OAAO,IAAI,SAAS,CAAA;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC1C,OAAO,IAAI,GAAG,CAAA;gBAChB,CAAC;gBACD,OAAO,IAAI,eAAe,CAAA;gBAC1B,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAA;gBACxB,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAA;gBAC3C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;gBAChE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;gBACvD,MAAM,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,CAAA;gBAClC,OAAO,IAAI,OAAO,GAAG,IAAI,CAAA;gBAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC7D,MAAM,cAAc,GAAQ,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;oBAC3D,IAAI,GAAG,GAAW,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAA;oBACjD,OAAO,IAAI,MAAM,GAAG,WAAW,CAAC,KAAK,CAAA;oBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrC,OAAO,IAAI,GAAG,CAAA;oBAChB,CAAC;oBACD,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;oBAC/C,MAAM,WAAW,GAAW,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;oBAC/C,OAAO,IAAI,GAAG,GAAG,QAAQ,GAAG,WAAW,CAAA;oBACvC,IAAI,sBAAsB,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAA;oBACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,sBAAsB,EAAE,CAAC,EAAE,EAAE,CAAC;wBAChD,OAAO,IAAI,GAAG,CAAA;oBAChB,CAAC;oBACD,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;oBACxE,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;oBACtE,OAAO,IAAI,UAAU,GAAG,SAAS,GAAG,IAAI,CAAA;gBAC1C,CAAC;gBACD,WAAW,IAAI,OAAO,CAAA;YACxB,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE;gBAC1D,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE;aACxE,CAAA;QACH,CAAC;QACD,SAAS,CAAC,GAAG;YACX,OAAO,GAAG,CAAA;QACZ,CAAC;KACF,CAAA;AACH,CAAC","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
|
8
|
+
return { ...req };
|
9
9
|
},
|
10
10
|
normalize(res) {
|
11
|
-
return
|
11
|
+
return { ...res };
|
12
12
|
},
|
13
13
|
action({ store, method, path, request, platformAction }) {
|
14
|
-
return
|
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,
|
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 =
|
102
|
-
|
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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
|
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 +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,
|
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;
|
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(
|
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(
|
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(
|
41
|
-
|
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(
|
49
|
-
|
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
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
const
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
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
|
-
|
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
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
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":"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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"]}
|