UNPKG

ayva

Version:

Library for developing cross-platform voice applications

52 lines (45 loc) 1.93 kB
var GoogleAssistant = require('./GoogleAssistant') var ExecuteIntent = require('../../IntentExecutor') var GoogleRequestParser = function(googleArgs, _res){ //attach or create Device related to request var context = {} context.args = googleArgs.result.contexts[0].parameters || googleArgs.result.parameters || {}; context.intentName = googleArgs.result.action context.assistant = new GoogleAssistant(_res) context.rawInput = googleArgs.originalRequest.data.inputs[0].rawInputs[0].query context.deviceProfile = { platform: "google", id: googleArgs.originalRequest.data.user.userId, isMobile: () => { return googleArgs.originalRequest.data.surface.capabilities.some((c) => {return c.name == 'actions.capability.SCREEN_OUTPUT'}) || googleArgs.originalRequest.data.inputs[0].rawInputs[0].inputType == "KEYBOARD" } } checkForPermissions(context, googleArgs.originalRequest.data) .then(ExecuteIntent(context)) } var checkForPermissions = function(context, requestData){ return new Promise((resolve, reject) => { for(p in requestData.user.permissions) { const permission = requestData.user.permissions[p] switch(permission){ case "DEVICE_PRECISE_LOCATION": case "DEVICE_COARSE_LOCATION": console.log(requestData.device.location) context.location = requestData.device.location break; case "NAME": console.log(requestData) break; case "UPDATE": console.log(requestData) break; default: console.log("No match for " + permission) break; } } resolve() }); } module.exports = GoogleRequestParser;