adddownline.js 2.51 KB
const moment = require('moment');
const common = require('../common');
const commandError = require('./error');
const coreapi = require('../coreapi');

const coreEndpoint = '/stores/create';

function help(keyword) {
    return `
        Untuk membuat downline baru, ketik dgn format:
        ${ keyword.toUpperCase() }.<NAMADOWNLINE>.<PIN>
        atau
        ${ keyword.toUpperCase() }.<NAMADOWNLINE>.<TERMINAL>.<PIN>
        atau
        ${ keyword.toUpperCase() }.<NAMADOWNLINE>.<TERMINAL>.<MARKUP>.<PIN>
    `.replace(/^\s+/mg, '').replace(/\s+$/mg, '').trim();
}

function execute(tokens, params, cb) {
    const newStoreName = ((tokens && tokens[1]) || '').trim();
    if (!tokens || tokens.length < 3 || !newStoreName) {
        const responseParams = {
            body: `${ commandError.ERR_INVALID_FORMAT }. ${ help(tokens[0]) }`
        }

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

    const coreParams = {
        asker_terminal_name: params.from,
        asker_terminal_password: null,
        new_store_name: `${newStoreName} - ${moment().format('YYMMDDHHmm')}`,
        new_terminal_name: null,
        markup: null,
    };

    if (tokens.length === 3) {
        coreParams.asker_terminal_password = tokens[2];
    } else if (tokens.length === 4) {
        coreParams.new_terminal_name = tokens[2];
        coreParams.asker_terminal_password = tokens[3];
        coreParams.generate_password = 1;
    } else if (tokens.length === 5) {
        coreParams.new_terminal_name = tokens[2];
        coreParams.markup = tokens[3];
        coreParams.asker_terminal_password = tokens[4];
        coreParams.generate_password = 1;
    }

    /*
    if (typeof coreParams.new_terminal_name === 'string' && coreParams.new_terminal_name.indexOf('@') < 0) {
        let suffix = '';
        if (common.isPhoneNumber(coreParams.new_terminal_name)) {
            coreParams.new_terminal_name = common.indonesiaIntlNumberToZeroPrefix(coreParams.new_terminal_name);
            suffix = '@phonenumber';
        } else {
            suffix = common.guessSuffix(coreParams.asker_terminal_name);
        }
    
        if (suffix) {
            coreParams.new_terminal_name += suffix;
        }
    }
    */

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

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

module.exports = execute;