router-ussd.js 1.3 KB
/**
 * Router USSD
 * @module
 */

const express = require('express');

// const modem = require('../modem');
const modem = require('../modem-commands');

const router = express.Router();
module.exports = router;

/**
 * Handler untuk interface eksekusi kode USSD
 *
 * @param  {object} req - Objek request Express
 * @param  {object} req.query - Objek query string request Express
 * @param  {string} req.query.code - Kode USSD yang ingin dieksekusi
 * @param  {number|string} [req.query.include_cusd2=0] - Apakah ingin mengeksekusi CUSD=2.
 * <br>-1: sebelum
 * <br>0: tidak (default)
 * <br>1: sesudah
 * <br>2: sebelum dan sesudah
 * @param  {object} res - Objek respon Express
 * @see module:modem-commands.executeUSSD
 */
async function handlerIndex(req, res) {
    if (!req.query || !req.query.code || typeof req.query.code !== 'string') {
        res.json({
            status: 'NOT-OK',
            error: 'INVALID-PARAMETER',
            message: 'Undefined parameter: code',
        });

        return;
    }

    const reply = await modem.executeUSSD(req.query.code, Number(req.query.include_cusd2));
    res.json({
        status: 'OK',
        error: false,
        code: req.query.code,
        include_cusd2: Number(req.query.include_cusd2) || 0,
        message: reply,
    });
}

router.get('/', handlerIndex);