Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
exports.dorothyCares = functions.https.onRequest((request, response) => {
// 1. declaring our app so that we can make requests
const app = new App({
request,
response
});
// 2. Logging the request
console.log('Request headers: ' + JSON.stringify(request.headers));
console.log('Request body: ' + JSON.stringify(request.body));
function giveRessources(app) {
// Keeping track of the version of the function that will be deployed
console.log('give ressources v1.5');
let technology = app.getArgument(TECH_ARGUMENT);
// make the request to our api to have the informations
console.log('https://dorothycares.herokuapp.com/ressources/' + technology);
https.get('https://dorothycares.herokuapp.com/ressources/' + technology, (res) => {
// declaring the body
let body = '';
const receive = (node, config, req, res) => {
let json = req.body
// try { json = JSON.parse(json); } catch (ex) { console.log('Parsing Error', ex, json) }
let app = new DialogflowApp({request: req, response: res});
if(json.originalRequest == undefined) {
console.log(json);
node.warn('Empty request received');
return;
}
let data = botmgr.buildMessageFlow({ message : json }, {
userLocale: 'message.originalRequest.data.user.locale',
userId: 'message.originalRequest.data.user.userId',
convId: 'message.originalRequest.data.conversation.conversationId',
payload: 'message.originalRequest.data.inputs[0].rawInputs[0].query',
inputType: 'message.originalRequest.data.inputs[0].rawInputs[0].inputType',
source: CARRIER
})
exports.devfest = functions.https.onRequest((request, response) => {
console.log('Request headers: ' + JSON.stringify(request.headers))
console.log('Request body: ' + JSON.stringify(request.body))
// Construct actions app object, processing request
const app = new App({ request, response })
const actionMap = new Map()
actionMap.set(ACTION_BOOKS_SHOW_INFO, bookSelected)
actionMap.set(ACTION_BOOKS_SHOW_INFO_BY_NAME, bookSelectedByName)
actionMap.set(ACTION_AUTHOR_SHOW_INFO, authorInfoRequested)
app.handleRequest(actionMap)
function bookSelected(app) {
const optionKey = app.getContextArgument('actions_intent_option', 'OPTION').value;
app.setContext('books-last3-followup', 2, {
book: BOOKS_DUMMY[optionKey].name,
author: BOOKS_DUMMY[optionKey].author
})
console.log('Selected book' + JSON.stringify(optionKey) + ", " + JSON.stringify(app.getContexts()))
// Compare the user's selections to each of the item's keys
if (!optionKey) {
app.post('/', function(request, response) {
//console.log('headers: ' + JSON.stringify(request.headers));
//console.log('body: ' + JSON.stringify(request.body));
const assistant = new Assistant({
request: request,
response: response
});
function responseHandler(app) {
// intent contains the name of the intent you defined in the Actions area of API.AI
let intent = assistant.getIntent();
switch (intent) {
case SUSI_INTENT:
var query = assistant.getRawInput(SUSI_INTENT);
console.log(query);
var options = {
method: 'GET',
url: 'http://api.susi.ai/susi/chat.json',
qs: {
expressApp.use(morgan('dev'))
expressApp.use(bodyParser.json())
expressApp.use(bodyParser.urlencoded({extended: true}))
expressApp.set('trust proxy', 1)
Auth.registerAuthEndpoints(expressApp)
let jwt
try {
jwt = require('./smart-home-key.json')
} catch (e) {
console.warn('Service account key is not found')
console.warn('Report state and Request sync will be unavailable')
}
const app = smarthome({
jwt,
debug: true,
})
// Array could be of any type
// tslint:disable-next-line
async function asyncForEach(array: any[], callback: Function) {
for (let index = 0; index < array.length; index++) {
await callback(array[index], index, array)
}
}
async function getUserIdOrThrow(headers: Headers): Promise {
const userId = await Auth.getUser(headers)
const userExists = await Firestore.userExists(userId)
if (!userExists) {
exports.photoboothAssistantApp = functions.https.onRequest((req, res) => {
const app = new Assistant({request: req, response: res});
console.log('Request headers: ' + JSON.stringify(req.headers));
console.log('Request body: ' + JSON.stringify(req.body));
const actionMap = new Map([
// Starting the interaction, asking if the user likes it, picture retakes
[APIAI.action.START, handle.start],
[APIAI.action.PICTURE_DENIED, handle.takePicture],
// asking if the user wants style to their selected photo
[APIAI.action.PICTURE_APPROVED, handle.stylePictureInquiry],
// asking the user if they want to upload/print their photo
[APIAI.action.STYLE_PICTURE_APPROVED, handle.sharePhotoInquiryStall],
[APIAI.action.STYLE_PICTURE_DENIED, handle.sharePhotoInquiry],
// Uploading the picture
[APIAI.action.PICTURE_UPLOAD_APPROVED, handle.photoShared],
[APIAI.action.PICTURE_UPLOAD_DENIED, handle.photoNotShared],
// Fallback and other actions
app.post('/', function(req, res, next) {
// Log the request headers and body, to aide in debugging. You'll be able to view the
// webhook requests coming from API.AI by clicking the Logs button the sidebar.
logObject('Request headers: ', req.headers);
logObject('Request body: ', req.body);
// Instantiate a new API.AI assistant object.
const assistant = new ApiAiAssistant({request: req, response: res});
// Declare constants for your action and parameter names
const ASK_WEATHER_ACTION = 'askWeather'; // The action name from the API.AI intent
const CITY_PARAMETER = 'geo-city'; // An API.ai parameter name
// Create functions to handle intents here
function getWeather(assistant) {
console.log('Handling action: ' + ASK_WEATHER_ACTION);
let city = assistant.getArgument(CITY_PARAMETER);
// Make an API call to fetch the current weather in the requested city.
// See https://developer.yahoo.com/weather/
let weatherRequestURL = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast" +
"%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22" +
encodeURIComponent(city) +
"%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys"
function list(conv) {
if (!conv.hasScreen) {
conv.ask('Sorry, try this on a screen device or select the ' +
'phone surface in the simulator.');
return;
}
conv.ask('This is a simple response for a list.');
conv.ask(new Suggestions(intentSuggestions));
// Create a list
conv.ask(new List({
title: 'List Title',
items: {
// Add the first item to the list
[SELECTION_KEY_ONE]: {
synonyms: [
'synonym of title 1',
'synonym of title 2',
'synonym of title 3',
],
title: 'Title of First List Item',
description: 'This is a description of a list item.',
image: new Image({
url: IMG_URL_AOG,
alt: 'Image alternate text',
function carousel(conv) {
if (!conv.hasScreen) {
conv.ask('Sorry, try this on a screen device or select the ' +
'phone surface in the simulator.');
return;
}
conv.ask('This is a simple response for a carousel.');
conv.ask(new Suggestions(intentSuggestions));
// Create a carousel
conv.ask(new Carousel({
items: {
// Add the first item to the carousel
[SELECTION_KEY_ONE]: {
synonyms: [
'synonym of title 1',
'synonym of title 2',
'synonym of title 3',
],
title: 'Title of First Carousel Item',
description: 'This is a description of a carousel item.',
image: new Image({
url: IMG_URL_AOG,
alt: 'Image alternate text',
}),
function list(conv) {
conv.ask('This is a simple response for a list.');
conv.ask(new Suggestions(intentSuggestions));
conv.ask(new List({
title: 'List Title',
items: {
// Add the first item to the list
[SELECTION_KEY_GOOGLE_ASSISTANT]: {
synonyms: [
'Assistant',
'Google Assistant',
],
title: 'Item #1',
description: 'Description of Item #1',
image: new Image({
url: 'https://www.gstatic.com/images/branding/product/2x/assistant_48dp.png',
alt: 'Google Assistant logo',
}),
},