From f8c9cc7ba8489d98646fa40b3087abe207042239 Mon Sep 17 00:00:00 2001 From: Herrie Date: Mon, 25 Nov 2019 16:04:01 +0100 Subject: [PATCH] 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 };