listterminal.js 1.35 KB
const CORE_ENDPOINT = '/terminals';

const commandError = require('./error');
const coreapi = require('../coreapi');

function help(keyword) {
    return `
Untuk list terminal anda, ketik perintah dengan format:

${ keyword.toUpperCase() }.<PIN>
atau
${ keyword.toUpperCase() }.#<IDDOWNLINE>.<PIN>
atau
${ keyword.toUpperCase() }.<TERMINALDOWNLINE>.<PIN>
    `.trim();
}

function execute(tokens, params, cb) {

    if (!tokens || tokens.length < 2) {
        const responseParams = {
            body: `
${ commandError.ERR_INVALID_FORMAT }: ${params.msg}

${ help(tokens[0]) }
            `.trim(),
        }

        cb(null, null, responseParams);
        return;
    }

    const idxDownline = (tokens.length <= 2) ? null : 1;
    const idxPin = (tokens.length <= 2) ? 1 : 2;

    let downline;
    let downlineStoreId;
    let downlineTerminalName;
    if (idxDownline) {
        downline = tokens[idxDownline];
        if (downline.indexOf('#') === 0) {
            downlineStoreId = downline.replace(/^#/, '');
        } else {
            downlineTerminalName = downline;
        }
    }

    const coreParams = {
        asker_terminal_name: params.from,
        asker_terminal_password: tokens[ idxPin ],
        store_id: downlineStoreId,
        terminal_name: downlineTerminalName,
    };

    coreapi(CORE_ENDPOINT, coreParams, 'GET', cb);
}

module.exports = execute;