diff --git a/lib/controllers/abbott/botkit/index.js b/lib/controllers/abbott/botkit/index.js index 54cba08..c0a1f6f 100644 --- a/lib/controllers/abbott/botkit/index.js +++ b/lib/controllers/abbott/botkit/index.js @@ -91,9 +91,6 @@ function AbbottBot(configuration) { } var payload = req.body; - // if (payload.payload) { - // payload = JSON.parse(payload.payload); - // } if (req.query.collectPipeData) { payload.collectPipeData = true; @@ -101,28 +98,22 @@ function AbbottBot(configuration) { if (payload.originalRequest.source === 'abbott') { let bot = botkit_core.spawn({ response: res }); - // Receive messages and trigger events from the Events API - return handleEventsAPI(payload, bot, res); + botkit_core.ingest(bot, payload, res); } }; - function handleEventsAPI(payload, bot, res) { - var message = {}; + botkit_core.middleware.normalize.use(function (bot, message, next) { + message.text = message.query; + message.type = 'message'; + message.user = message.originalRequest.user.userId; + message.channel = message.originalRequest.user.userId; - // let's normalize some of these fields to match the rtm message format - if ((payload.originalRequest.source === 'abbott') && (payload.query)) { - message.text = payload.query; - message.type = 'message'; - message.user = payload.originalRequest.user.userId; - message.channel = payload.originalRequest.user.userId; - - if (payload.collectPipeData) { - message.collectPipeData = payload.collectPipeData; - } - - botkit_core.ingest(bot, message, res); + if (message.collectPipeData) { + message.collectPipeData = message.collectPipeData; } - } + + next(); + }); return botkit_core; } diff --git a/lib/controllers/abbott/botkit/worker.js b/lib/controllers/abbott/botkit/worker.js index c524ab2..75e60b4 100644 --- a/lib/controllers/abbott/botkit/worker.js +++ b/lib/controllers/abbott/botkit/worker.js @@ -65,6 +65,8 @@ module.exports = function (botkit, config) { if (typeof (resp) == 'string') { msg.text = resp; + } else if (Array.isArray(resp)) { + msg.text = resp; } else { msg = resp; } diff --git a/lib/core/intent-flow-handler.js b/lib/core/intent-flow-handler.js index cb20b00..e759103 100644 --- a/lib/core/intent-flow-handler.js +++ b/lib/core/intent-flow-handler.js @@ -426,7 +426,11 @@ module.exports = class IntentFlowHandler { if (customPayload.responseAsMessage) { resp.resultMessage = newData; } else if (customPayload.messageFormat) { - resp.resultMessage = this.messageFormat.compile(customPayload.messageFormat)(newData); + if (Array.isArray(customPayload.messageFormat)) { + resp.resultMessage = customPayload.messageFormat.map((messageFormatItem) => this.messageFormat.compile(messageFormatItem)(newData)); + } else { + resp.resultMessage = this.messageFormat.compile(customPayload.messageFormat)(newData); + } } else if (customPayload.message) { resp.resultMessage = customPayload.message; } diff --git a/lib/core/responseBuilders/abbott.js b/lib/core/responseBuilders/abbott.js index a54d1a0..82fc9d4 100644 --- a/lib/core/responseBuilders/abbott.js +++ b/lib/core/responseBuilders/abbott.js @@ -15,6 +15,15 @@ module.exports = class { } return responseMessage.response; + } else if (Array.isArray(responseMessage.response)) { + let sanitizedArray = responseMessage.response.map((item) => { + if (item.trim().length > 0) { + item = item.trim(); + } + return item; + }); + + return sanitizedArray; } return { custom: responseMessage.response }; @@ -45,4 +54,4 @@ module.exports = class { response: finalResponse }; } -}; \ No newline at end of file +};