router-ussd.js 1.2 KB
'use strict';

const express = require('express');

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

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

/**
 * Eksekusi kode USSD
 * @param  {object} req - Objek request Express
 *
 * Pilihan req.query.include_cusd2:
 * -1: sebelum
 * 0: tidak (default)
 * 1: sesudah
 * 2: sebelum dan sesudah
 *
 * @param  {object} req.query - Objek query string request Express
 * @param  {string} req.query.code - Kode USSD yang ingin dieksekusi
 * @param  {number} [req.query.include_cusd2=0] - Apakah ingin mengeksekusi CUSD=2 secara otomatis
 * @param  {object} res - Objek respon Express
 */
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);