Skip to content

Commit

Permalink
Added support to abbott controller to send array of messages to client
Browse files Browse the repository at this point in the history
  • Loading branch information
patrinhani-ciandt committed Jan 23, 2018
1 parent 7e1587f commit 7b6151a
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 22 deletions.
31 changes: 11 additions & 20 deletions lib/controllers/abbott/botkit/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,38 +91,29 @@ function AbbottBot(configuration) {
}

var payload = req.body;
// if (payload.payload) {
// payload = JSON.parse(payload.payload);
// }

if (req.query.collectPipeData) {
payload.collectPipeData = true;
}

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;
}
Expand Down
2 changes: 2 additions & 0 deletions lib/controllers/abbott/botkit/worker.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
6 changes: 5 additions & 1 deletion lib/core/intent-flow-handler.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
11 changes: 10 additions & 1 deletion lib/core/responseBuilders/abbott.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 };
Expand Down Expand Up @@ -45,4 +54,4 @@ module.exports = class {
response: finalResponse
};
}
};
};

0 comments on commit 7b6151a

Please sign in to comment.