index.js 1.2 KB
/**
 * XML-RPC callback listener
 *
 * @author Adhidarma Hadiwinoto <me@adhisimon.org>
 * @since 2021-06-02
 * @version 20210602
 */

const MODULE_NAME = 'CALLBACK';

const express = require('express');
const uniqid = require('uniqid');

const config = require('komodo-sdk/config');
const logger = require('komodo-sdk/logger');

const commonMiddleware = require('./common-middleware');
const mainHandler = require('./main-handler');

const listenPort = config.partner.callback_port
    || config.reverse_report_port;

if (!listenPort) {
    logger.warn(`${MODULE_NAME} B2D51894: Please specified callback listen port on config.partner.callback_port`);
    process.exit(1);
}

const app = express();

app.use((req, res, next) => {
    res.locals.xid = uniqid();
    next();
});

app.use(express.text({ type: 'text/*' }));
app.use(commonMiddleware);
app.use(mainHandler);

app
    .listen(listenPort, () => {
        logger.verbose(`${MODULE_NAME} 12322885: Start listening`, {
            port: listenPort,
        });
    })
    .on('error', (e) => {
        logger.warn(`${MODULE_NAME} 03709C04: Exception on starting`, {
            eCode: e.code,
            eMessage: e.message,
        });

        process.exit(1);
    });