addterminal.js 1.34 KB
"use strict";

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

const coreEndpoint = '/terminals/create';

function help(keyword) {
    return `Untuk membuat terminal, ketik perintah dengan format: ${ keyword.toUpperCase() }.<NAMATERMINALBARU>.<PINTERMINALBARU>.<PIN> atau ${ keyword.toUpperCase() }.<IDDOWNLINE>.<NAMATERMINALBARU>.<PINTERMINALBARU>.<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 idxPin = (tokens.length < 5) ? 3 : 4;

    const coreParams = {
        asker_terminal_name: params.from,
        asker_terminal_password: tokens[ idxPin ],
        store_id: tokens.length > 4 ? tokens[1] : null,
        terminal_name: tokens.length < 5 ? tokens[1] : tokens[2],
        password: tokens.length < 5 ? tokens[2] : tokens[3]
    };

    if (typeof coreParams.terminal_name === 'string' && common.isPhoneNumber(coreParams.terminal_name) && coreParams.terminal_name.indexOf('0') === 0) {
        coreParams.terminal_name = coreParams.terminal_name.replace(/^0/, '62');
    }

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

module.exports = execute;