Skip to content

Commit e29b002

Browse files
jgansemangermanattanasio
authored andcommitted
implement more graceful error handling, fix issue #125 (#127)
* add error checks in fb bot example * Add error checks in slack bot example * Add error checks to twilio bot example * handle unknown/badly formed messages * whoops typo fix * whoops typo fix * whoops typo fix * whoops typo fix * safer to check for error field first * safer to check for error field first * safer to check for error field first * safer to check for error field first * in case of error reply with actual error message * in case of error reply with actual error message * in case of error reply with actual error message * check only for presence of output field * check only for presence of output field * check only for presence of output fields * upd error message, check for output as field only
1 parent cb89c80 commit e29b002

File tree

4 files changed

+32
-5
lines changed

4 files changed

+32
-5
lines changed

examples/multi-bot/bot-facebook.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,15 @@ var controller = Botkit.facebookbot({
2323

2424
var bot = controller.spawn();
2525
controller.hears('(.*)', 'message_received', function(bot, message) {
26-
bot.reply(message, message.watsonData.output.text.join('\n'));
26+
if (message.watsonError) {
27+
console.log(message.watsonError);
28+
bot.reply(message, message.watsonError.description || message.watsonError.error);
29+
} else if (message.watsonData && 'output' in message.watsonData) {
30+
bot.reply(message, message.watsonData.output.text.join('\n'));
31+
} else {
32+
console.log('Error: received message in unknown format. (Is your connection with Watson Conversation up and running?)');
33+
bot.reply(message, "I'm sorry, but for technical reasons I can't respond to your message");
34+
}
2735
});
2836

2937
module.exports.controller = controller;

examples/multi-bot/bot-slack.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,15 @@ var bot = controller.spawn({
2222
});
2323

2424
controller.hears(['.*'], ['direct_message', 'direct_mention', 'mention'], function(bot, message) {
25-
bot.reply(message, message.watsonData.output.text.join('\n'));
25+
if (message.watsonError) {
26+
console.log(message.watsonError);
27+
bot.reply(message, message.watsonError.description || message.watsonError.error);
28+
} else if (message.watsonData && 'output' in message.watsonData) {
29+
bot.reply(message, message.watsonData.output.text.join('\n'));
30+
} else {
31+
console.log('Error: received message in unknown format. (Is your connection with Watson Conversation up and running?)');
32+
bot.reply(message, "I'm sorry, but for technical reasons I can't respond to your message");
33+
}
2634
});
2735

2836
module.exports.controller = controller;

examples/multi-bot/bot-twilio.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,15 @@ var bot = controller.spawn({
2727
autojoin: true
2828
});
2929
controller.hears(['.*'], 'message_received', function(bot, message) {
30-
bot.reply(message, message.watsonData.output.text.join('\n'));
30+
if (message.watsonError) {
31+
console.log(message.watsonError);
32+
bot.reply(message, message.watsonError.description || message.watsonError.error);
33+
} else if (message.watsonData && 'output' in message.watsonData) {
34+
bot.reply(message, message.watsonData.output.text.join('\n'));
35+
} else {
36+
console.log('Error: received message in unknown format. (Is your connection with Watson Conversation up and running?)');
37+
bot.reply(message, "I'm sorry, but for technical reasons I can't respond to your message");
38+
}
3139
});
3240

3341
module.exports.controller = controller;

examples/simple-bot/simple-bot-slack.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,12 @@ slackController.hears(['.*'], ['direct_message', 'direct_mention', 'mention'], f
3636
middleware.interpret(bot, message, function() {
3737
if (message.watsonError) {
3838
console.log(message.watsonError);
39-
bot.reply(message, "I'm sorry, but for technical reasons I can't respond to your message");
40-
} else {
39+
bot.reply(message, message.watsonError.description || message.watsonError.error);
40+
} else if (message.watsonData && 'output' in message.watsonData) {
4141
bot.reply(message, message.watsonData.output.text.join('\n'));
42+
} else {
43+
console.log('Error: received message in unknown format. (Is your connection with Watson Conversation up and running?)');
44+
bot.reply(message, "I'm sorry, but for technical reasons I can't respond to your message");
4245
}
4346
});
4447
});

0 commit comments

Comments
 (0)