var express = require('express') var bodyParser = require('body-parser') var RootDialog = require('./Machines/RootDialog'); var bots = require('./bot') var semaphore = require('semaphore') var data = require('./data') var app = express() var semaphores = {} var jsonParser = bodyParser.json(); app.get('/', (req, res) => { res.send(JSON.stringify({value: 1})); }) app.post('/', jsonParser, (req, res) => { res.setHeader('Content-Type', 'application/json'); let uuid = req.body.sessionId; console.log("Session id is : " + uuid); if(semaphores[uuid] == undefined) { console.log('Came here Added semaphore') semaphores[uuid] = semaphore(1); } res.semaphore = semaphores[uuid]; res.uuid = uuid; if (bots[uuid] == undefined) { bots[uuid] = new RootDialog({ uuid: uuid }); data[uuid] = {'store': {}, 'microBots': {}, 'expectedIntents' : {}} } data[uuid]['res'] = res; let intent = req.body.result.metadata.intentName; data[uuid]['intent'] = intent; data[uuid]['context'] = req.body; if(intent == 'Default Fallback Intent') intent = 'string' for(param in data[uuid]["context"].result.parameters) { data[uuid]['store'][param] = data[uuid]["context"].result.parameters[param] } semaphores[uuid].take(function() { bots[uuid].handle(intent); }); }); app.listen(#PORT, () => { console.log("Listening at #PORT"); });