inquiry-to-komodo.js 1.6 KB
const MODULE_NAME = 'ACTIONS.INQUIRY-TO-KOMODO';

const logger = require('tektrans-logger');
const axios = require('axios').default;

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

const client = axios.create({
    baseURL: config.komodo_http_get_x.url,
    timeout: config.komodo_http_get_x.request_timeout_ms,
});

/**
 * request inquiry transaction to komodo
 *
 * @param {string} xid
 * @param {string} requestId
 * @param {string} destination
 * @param {string} productName
 * @param {string} reverseUrl
 */
module.exports = async (
    xid,
    requestId,
    destination,
    productName,
    reverseUrl,
) => {
    logger.verbose(`${MODULE_NAME} 4AD4DF41: request inquiry to komodo`, {
        requestId, destination, productName, reverseUrl, xid,
    });

    const params = {
        request_id: requestId,
        terminal_name: config.komodo_http_get_x.terminal_name,
        password: config.komodo_http_get_x.password,
        destination,
        product_name: productName,
        reverse_url: reverseUrl,
    };

    try {
        const response = await client.get('/inquiry', {
            params,
        });
        if (!response) {
            throw new Error(`${MODULE_NAME} 6CE3E06E: Empty response from komodo`);
        }
        if (!response.data) {
            throw new Error(`${MODULE_NAME} F236476F: Empty response data from komodo`);
        }

        return response.data;
    } catch (err) {
        logger.warn(`${MODULE_NAME} 48BAA6B7: Exception`, {
            xid,
            requestId,
            destination,
            productName,
            message: err.message,
        });
        throw err;
    }
};