-
Notifications
You must be signed in to change notification settings - Fork 5
/
botkit-middleware-lex.js
54 lines (48 loc) · 1.49 KB
/
botkit-middleware-lex.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
var LexRuntime = require('aws-sdk').LexRuntime
// At time of writing, us-east-1 is the only supported region for Lex
var lex = new LexRuntime({
region: 'us-east-1'
})
module.exports = function(config) {
function receive(bot, message, next) {
console.log('Running receieve!')
var params = {
botAlias: config.botAlias,
botName: config.botName,
inputText: message.text,
userId: message.user,
requestAttributes: message.requestAttributes,
sessionAttributes: message.sessionAttributes
};
if (message.text) {
var request = lex.postText(params, function(err, data) {
if (err) {
next(err)
} else {
message.lex = {
intent: data.intentName,
slots: data.slots,
session: data.sessionAttributes,
response: data.message,
dialogState: data.dialogState,
slotToElicit: data.slotToElicit
}
next()
}
})
} else {
next()
}
}
function hears(tests, message) {
for (var i = 0; i < tests.length; i++) {
if (message.lex && message.lex.intent === tests[i]) {
return true;
}
}
return false;
};
return {
receive: receive
}
}