-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathparse.js
25 lines (22 loc) · 1.1 KB
/
parse.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
'use strict'
module.exports = function parse(message) {
return new Promise((resolve, reject) => {
if (typeof message !== 'object' || !message || !message.request || (['LaunchRequest', 'IntentRequest', 'SessionEndedRequest'].indexOf(message.request.type) < 0) && !/^AudioPlayer\./.test(message.request.type) && !/^PlaybackController\./.test(message.request.type)) {
reject({
error: 'Not valid Alexa request',
description: 'It seems that event is not a valid Alexa request. In case you think this is an issue, please report it at https://github.com/stojanovic/alexa-skill-kit/issues and include debug info from this object.',
debug: message
})
}
const parsedMessage = {
type: message.request.type,
request: message.request,
intent: message.request.intent || null,
session: message.session || null,
sessionAttributes: (message.session && message.session.attributes) || {},
user: (message.context && message.context.user) || (message.session && message.session.user) || {},
originalRequest: message
}
resolve(parsedMessage)
})
}