From 099ce6f7f6c9fe82be75f56daead1be96c654bc2 Mon Sep 17 00:00:00 2001 From: Adhidarma Hadiwinoto <me@adhisimon.org> Date: Wed, 3 Jul 2019 16:54:59 +0700 Subject: [PATCH] transferBalance handler --- lib/command-handler/index.js | 4 ++++ lib/command-handler/transferbalance.js | 35 ++++++++++++++++++++++++++++++++++ lib/default-command.js | 2 +- 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 lib/command-handler/transferbalance.js diff --git a/lib/command-handler/index.js b/lib/command-handler/index.js index a35a94a..6612320 100644 --- a/lib/command-handler/index.js +++ b/lib/command-handler/index.js @@ -14,6 +14,7 @@ const handlerListDownline = require('./listdownline'); const handlerDownlineInfo = require('./downlineinfo'); const handlerAddDownline = require('./adddownline'); const handlerAddBalance = require('./addbalance'); +const handlerTransferBalance = require('./transferbalance'); function execute(msg, params, cb) { @@ -35,6 +36,9 @@ function execute(msg, params, cb) { else if (commandGroup === 'addbalance') { handlerAddBalance(tokens, params, cb); } + else if (commandGroup === 'transferbalance') { + handlerTransferBalance(tokens, params, cb); + } else if (commandGroup === 'price') { handlerPrice(tokens, params, cb); } diff --git a/lib/command-handler/transferbalance.js b/lib/command-handler/transferbalance.js new file mode 100644 index 0000000..dde3a35 --- /dev/null +++ b/lib/command-handler/transferbalance.js @@ -0,0 +1,35 @@ +"use strict"; + +const commandError = require('./error'); +const coreapi = require('../coreapi'); + +const coreEndpoint = '/stores/transfer-balance'; + +function help(keyword) { + return `Untuk transfer saldo ke downline, ketik perintah dengan format: ${ keyword.toUpperCase() }.<IDDOWNLINE>.<JUMLAH>.<PIN>`; +} + +function execute(tokens, params, cb) { + + if (!tokens || tokens.length < 4) { + const responseParams = { + body: `${ commandError.ERR_INVALID_FORMAT }. ${ help(tokens[0]) }` + } + + cb(null, null, responseParams); + return; + } + + const coreParams = { + asker_terminal_name: params.from, + destination_store_id: tokens[1], + amount: tokens[2], + asker_terminal_password: tokens[3], + additional_note: tokens.slice(4).join(' ') || '', + origin: params.origin + }; + + coreapi(coreEndpoint, coreParams, 'GET', cb); +} + +module.exports = execute; \ No newline at end of file diff --git a/lib/default-command.js b/lib/default-command.js index aeccc27..7c82687 100644 --- a/lib/default-command.js +++ b/lib/default-command.js @@ -27,7 +27,7 @@ module.exports = { "ceksaldo", "checksaldo" ], - _transferbalance: [ + transferbalance: [ "transfer", "trf" ], -- 1.9.0