/*
    ! /servers/gateway/routers/template.router.js – 
*/

// % import nodejs dependencies
const router = require('express').Router();

// % import external dependencies
const rootDir = path.resolve(__dirname, '..', '..', '..');
const { dirs } = require(path.resolve(rootDir, 'configuration', 'mapping.js'));
const { gatewayEvents, sendToWs } = path.resolve(dirs.gateway, 'functions.js');

// $ template router with websocket integration
router.post('/test', (req, res) => {
    const correlationId = '';

    sendToWs({
        type: 'actionName',
        correlationId,
        data: req.body
    });

    // ~ wait for callback through central event bus
    gatewayEvents.once('ws_message', (msg) => {
        if (msg.correlationId === correlationId) res.json(msg.data);
    });
});

// § export routers
module.exports = router;