const crypto = require("crypto"); const scenario = require("./scenario"); const config = require("./config"); function builder(scenarioName, scenarioConfig, scenarioPhone) { const scenes = []; const builtScenario = scenario[scenarioName](scenarioConfig); const sessionId = crypto.randomBytes(16).toString("hex"); for (const scene of builtScenario) { scene.sessionId = sessionId; scene.ussdPhone = scenarioPhone; Object.assign(scene, config); scenes.push(scene); } return scenes; } function parseScenario(scenarioPhone, scenarioString) { const [scenarioName, scenarioConfig] = scenarioString.split(" "); return builder( scenarioName, parseScenarioConfig(scenarioConfig), scenarioPhone ); } function parseScenarioConfig(scenarioConfigString) { const configs = scenarioConfigString.split(","); const configObject = {}; for (const conf of configs) { [key, value] = conf.split("="); configObject[key] = value; } return configObject; } module.exports = { parseScenario };