inquiry.js 1.3 KB
const moment = require('moment');

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

const coreEndpoint = '/postpaid2/inquiry';

function generateRequestId(product, destination) {
    return `AUTO_INQUIRY_${ product.toUpperCase() }_${ destination }_${ moment().format('YYYYMMDD') }`;
}

function help(keyword) {
    return `Untuk mengecek tagihan, ketik perintah dengan format: ${(keyword || '').trim().toUpperCase()}.<KODEPRODUK>.<IDPELANGGAN>.<PIN>`;
}

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

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

    const coreParams = {
        origin: params.origin,
        report_ip: params.report_ip,
        report_port: params.report_port,
        terminal_name: params.from,
        product_name: tokens[1].trim().toUpperCase(),
        destination: tokens[2].trim().replace(/^\+62/, '0'),
        terminal_password: tokens[3],
        request_id: `${generateRequestId(tokens[1], tokens[2])}${Number(tokens[4]) ? `_req${Number(tokens[4])}` : `_rnd_${uniqid()}`}`,
    };

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

module.exports = execute;