From d2473bb81d3a60c55ea38b1f47b27f78a9a60909 Mon Sep 17 00:00:00 2001 From: Herrie Date: Mon, 25 Nov 2019 16:01:34 +0100 Subject: [PATCH 1/5] Add DKI order type To download Exchange rate files and fix syntax error. Signed-off-by: Herman van Hazendonk --- examples/send-dki-order.js | 30 ++++++++++++++++++++++++++++++ lib/predefinedOrders/DKI.js | 13 +++++++++++++ lib/predefinedOrders/index.js | 3 +++ 3 files changed, 46 insertions(+) create mode 100644 examples/send-dki-order.js create mode 100644 lib/predefinedOrders/DKI.js diff --git a/examples/send-dki-order.js b/examples/send-dki-order.js new file mode 100644 index 0000000..f338685 --- /dev/null +++ b/examples/send-dki-order.js @@ -0,0 +1,30 @@ +#! /usr/bin/env node + +'use strict'; + +const ebics = require('../index'); + +const client = new ebics.Client({ + url: 'https://ebics.server', + partnerId: '', + userId: '', + hostId: '', + passphrase: 'test', // keys-test will be decrypted with this passphrase + keyStorage: ebics.fsKeysStorage('./keys-test'), +}); + +// The bank keys must have been already saved +client.send(ebics.Orders.DKI(null, null)) // startDate 'YYYY-MM-DD', endDate 'YYYY-MM-DD' + .then((resp) => { + console.log('Response for DKI order %j', resp); + if (resp.technicalCode !== '000000') + throw new Error('Something went wrong'); + + // Processing of the Exchange Rate file should go here, ideally after saving it to disk + const data = Buffer.from(resp.orderData); + console.log(data.toString('utf8')); + }) + .catch((err) => { + console.error(err); + process.exit(1); + }); diff --git a/lib/predefinedOrders/DKI.js b/lib/predefinedOrders/DKI.js new file mode 100644 index 0000000..c31af27 --- /dev/null +++ b/lib/predefinedOrders/DKI.js @@ -0,0 +1,13 @@ +'use strict'; + +const utils = require('../utils'); + +module.exports = (start = null, end = null) => ({ + version: 'h004', + orderDetails: { + OrderType: 'DKI', + OrderAttribute: 'DZHNN', + StandardOrderParams: utils.dateRange(start, end), + }, + operation: 'download', +}); diff --git a/lib/predefinedOrders/index.js b/lib/predefinedOrders/index.js index 18e4f49..5aaa914 100644 --- a/lib/predefinedOrders/index.js +++ b/lib/predefinedOrders/index.js @@ -23,6 +23,7 @@ const HKD = require('./HKD'); const PTK = require('./PTK'); const HAC = require('./HAC'); const Z53 = require('./Z53'); +const DKI = require('./DKI'); module.exports = { INI, @@ -39,6 +40,7 @@ module.exports = { CCS, XE3, XCT, + STA, VMK, HAA, @@ -47,4 +49,5 @@ module.exports = { HKD, PTK, HAC, + DKI }; From c15e19d22fc58c26db3cd856ca18f005d4ed86cb Mon Sep 17 00:00:00 2001 From: Herrie Date: Mon, 25 Nov 2019 16:02:29 +0100 Subject: [PATCH 2/5] Rename send-hbt-order.js to send-htd-order.js To reflect the name of the order type correctly. Signed-off-by: Herman van Hazendonk --- examples/{send-hbt-order.js => send-htd-order.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename examples/{send-hbt-order.js => send-htd-order.js} (100%) mode change 100755 => 100644 diff --git a/examples/send-hbt-order.js b/examples/send-htd-order.js old mode 100755 new mode 100644 similarity index 100% rename from examples/send-hbt-order.js rename to examples/send-htd-order.js From ad7d55ce7c2a4d16ec4cef43185400340be61e74 Mon Sep 17 00:00:00 2001 From: Herrie Date: Mon, 25 Nov 2019 16:02:44 +0100 Subject: [PATCH 3/5] Add example for HKD order type Signed-off-by: Herman van Hazendonk --- examples/send-hkd-order.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 examples/send-hkd-order.js diff --git a/examples/send-hkd-order.js b/examples/send-hkd-order.js new file mode 100644 index 0000000..d81a517 --- /dev/null +++ b/examples/send-hkd-order.js @@ -0,0 +1,29 @@ +#! /usr/bin/env node + +'use strict'; + +const ebics = require('../index'); + +const client = new ebics.Client({ + url: 'https://ebics.server', + partnerId: '', + userId: '', + hostId: '', + passphrase: 'test', // keys-test will be decrypted with this passphrase + keyStorage: ebics.fsKeysStorage('./keys-test'), +}); + +// The bank keys must have been already saved +client.send(ebics.Orders.HKD) + .then((resp) => { + console.log('Response for HKD order %j', resp); + if (resp.technicalCode !== '000000') + throw new Error('Something went wrong'); + + const data = Buffer.from(resp.orderData); + console.log(data.toString('utf8')); + }) + .catch((err) => { + console.error(err); + process.exit(1); + }); From 0c08d534ff9f4e3aa43c25a4748491cca833c0d0 Mon Sep 17 00:00:00 2001 From: Herrie Date: Mon, 25 Nov 2019 16:03:40 +0100 Subject: [PATCH 4/5] Add examples for MT940 and MT942 Signed-off-by: Herman van Hazendonk --- examples/send-sta-order.js | 30 ++++++++++++++++++++++++++++++ examples/send-vmk-order.js | 30 ++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 examples/send-sta-order.js create mode 100644 examples/send-vmk-order.js diff --git a/examples/send-sta-order.js b/examples/send-sta-order.js new file mode 100644 index 0000000..ada81f3 --- /dev/null +++ b/examples/send-sta-order.js @@ -0,0 +1,30 @@ +#! /usr/bin/env node + +'use strict'; + +const ebics = require('../index'); + +const client = new ebics.Client({ + url: 'https://ebics.server', + partnerId: '', + userId: '', + hostId: '', + passphrase: 'test', // keys-test will be decrypted with this passphrase + keyStorage: ebics.fsKeysStorage('./keys-test'), +}); + +// The bank keys must have been already saved +client.send(ebics.Orders.STA(null, null)) // startDate 'YYYY-MM-DD', endDate 'YYYY-MM-DD' + .then((resp) => { + console.log('Response for STA order %j', resp); + if (resp.technicalCode !== '000000') + throw new Error('Something went wrong'); + + // Parsing and processing the MT940 file should happen somewhere here, ideally after saving it to disk + const data = Buffer.from(resp.orderData); + console.log(data.toString('utf8')); + }) + .catch((err) => { + console.error(err); + process.exit(1); + }); diff --git a/examples/send-vmk-order.js b/examples/send-vmk-order.js new file mode 100644 index 0000000..b6950af --- /dev/null +++ b/examples/send-vmk-order.js @@ -0,0 +1,30 @@ +#! /usr/bin/env node + +'use strict'; + +const ebics = require('../index'); + +const client = new ebics.Client({ + url: 'https://ebics.server', + partnerId: '', + userId: '', + hostId: '', + passphrase: 'test', // keys-test will be decrypted with this passphrase + keyStorage: ebics.fsKeysStorage('./keys-test'), +}); + +// The bank keys must have been already saved +client.send(ebics.Orders.VMK(null, null)) // startDate 'YYYY-MM-DD', endDate 'YYYY-MM-DD' + .then((resp) => { + console.log('Response for VMK order %j', resp); + if (resp.technicalCode !== '000000') + throw new Error('Something went wrong'); + + // Parsing and processing the MT942 file should happen somewhere here, ideally after saving it to disk + const data = Buffer.from(resp.orderData); + console.log(data.toString('utf8')); + }) + .catch((err) => { + console.error(err); + process.exit(1); + }); From f8c9cc7ba8489d98646fa40b3087abe207042239 Mon Sep 17 00:00:00 2001 From: Herrie Date: Mon, 25 Nov 2019 16:04:01 +0100 Subject: [PATCH 5/5] Add C52/C53 order types and examples Signed-off-by: Herman van Hazendonk --- examples/send-c52-order.js | 30 ++++++++++++++++++++++++++++++ examples/send-c53-order.js | 30 ++++++++++++++++++++++++++++++ lib/predefinedOrders/C52.js | 13 +++++++++++++ lib/predefinedOrders/C53.js | 13 +++++++++++++ lib/predefinedOrders/index.js | 6 +++++- 5 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 examples/send-c52-order.js create mode 100644 examples/send-c53-order.js create mode 100644 lib/predefinedOrders/C52.js create mode 100644 lib/predefinedOrders/C53.js diff --git a/examples/send-c52-order.js b/examples/send-c52-order.js new file mode 100644 index 0000000..74404be --- /dev/null +++ b/examples/send-c52-order.js @@ -0,0 +1,30 @@ +#! /usr/bin/env node + +'use strict'; + +const ebics = require('../index'); + +const client = new ebics.Client({ + url: 'https://ebics.server', + partnerId: '', + userId: '', + hostId: '', + passphrase: 'test', // keys-test will be decrypted with this passphrase + keyStorage: ebics.fsKeysStorage('./keys-test'), +}); + +// The bank keys must have been already saved +client.send(ebics.Orders.C52(null, null)) // startDate 'YYYY-MM-DD', endDate 'YYYY-MM-DD' + .then((resp) => { + console.log('Response for C52 order %j', resp); + if (resp.technicalCode !== '000000') + throw new Error('Something went wrong'); + + // Parsing and processing the CAMT052 file should happen somewhere here, ideally after saving it to disk + const data = Buffer.from(resp.orderData); + console.log(data.toString('utf8')); + }) + .catch((err) => { + console.error(err); + process.exit(1); + }); diff --git a/examples/send-c53-order.js b/examples/send-c53-order.js new file mode 100644 index 0000000..8748807 --- /dev/null +++ b/examples/send-c53-order.js @@ -0,0 +1,30 @@ +#! /usr/bin/env node + +'use strict'; + +const ebics = require('../index'); + +const client = new ebics.Client({ + url: 'https://ebics.server', + partnerId: '', + userId: '', + hostId: '', + passphrase: 'test', // keys-test will be decrypted with this passphrase + keyStorage: ebics.fsKeysStorage('./keys-test'), +}); + +// The bank keys must have been already saved +client.send(ebics.Orders.C53(null, null)) // startDate 'YYYY-MM-DD', endDate 'YYYY-MM-DD' + .then((resp) => { + console.log('Response for C53 order %j', resp); + if (resp.technicalCode !== '000000') + throw new Error('Something went wrong'); + + // Parsing and processing the CAMT053 file should happen somewhere here, ideally after saving it to disk + const data = Buffer.from(resp.orderData); + console.log(data.toString('utf8')); + }) + .catch((err) => { + console.error(err); + process.exit(1); + }); diff --git a/lib/predefinedOrders/C52.js b/lib/predefinedOrders/C52.js new file mode 100644 index 0000000..87c8d22 --- /dev/null +++ b/lib/predefinedOrders/C52.js @@ -0,0 +1,13 @@ +'use strict'; + +const utils = require('../utils'); + +module.exports = (start = null, end = null) => ({ + version: 'h004', + orderDetails: { + OrderType: 'C52', + OrderAttribute: 'DZHNN', + StandardOrderParams: utils.dateRange(start, end), + }, + operation: 'download', +}); diff --git a/lib/predefinedOrders/C53.js b/lib/predefinedOrders/C53.js new file mode 100644 index 0000000..6e6bebe --- /dev/null +++ b/lib/predefinedOrders/C53.js @@ -0,0 +1,13 @@ +'use strict'; + +const utils = require('../utils'); + +module.exports = (start = null, end = null) => ({ + version: 'h004', + orderDetails: { + OrderType: 'C53', + OrderAttribute: 'DZHNN', + StandardOrderParams: utils.dateRange(start, end), + }, + operation: 'download', +}); diff --git a/lib/predefinedOrders/index.js b/lib/predefinedOrders/index.js index 5aaa914..d720e35 100644 --- a/lib/predefinedOrders/index.js +++ b/lib/predefinedOrders/index.js @@ -24,6 +24,8 @@ const PTK = require('./PTK'); const HAC = require('./HAC'); const Z53 = require('./Z53'); const DKI = require('./DKI'); +const C52 = require('./C52'); +const C53 = require('./C53'); module.exports = { INI, @@ -49,5 +51,7 @@ module.exports = { HKD, PTK, HAC, - DKI + DKI, + C52, + C53 };