const express = require('express');
const app = express()
app.use(express.json());
app.get('/', (req, res) => res.send('Hello World!'))
app.listen(3000, () => console.log('Example app listening on port 3000!'))
// POST method route
app.post('/', function (req, res) {
console.log(req);
let action = req.body.queryResult.action;
console.log(action);
let responseJson = {};
responseJson.fulfillmentText = 'This is an endpoint published to RunKit'; // displayed response
if(action === '_private_getSTDAttribute'){
let stdName = req.body.queryResult.parameters.std;
let attributeName = req.body.queryResult.parameters.attribute;
var request = require("request");
var queryString = '{"std":"'+stdName+'","attribute":"'+attributeName+'"}';
console.log(queryString);
var urlPrefix = process.env.DBURL;
console.log(urlPrefix);
var options = {
method: 'GET',
url: urlPrefix+'/rest/dynamiccode?q='+queryString,
headers:
{ 'cache-control': 'no-cache',
'x-apikey': process.env.API_KEY
}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
bodyJson = JSON.parse(body);
responseJson.fulfillmentText = bodyJson[0]["text"];
res.json(responseJson);
});
}
else if(action === '_private_userChangesAttribute'){
//let stdName = req.body.queryResult.parameters.planet;
let attributeName = req.body.queryResult.parameters.attribute;
let contexts = req.body.queryResult.outputContexts;
console.log(contexts);
var item = contexts.find(item => item.name.endsWith('/contexts/std-attribute-set'));
var stdName = item.parameters.std;
var request = require("request");
var queryString = '{"std":"'+stdName+'","attribute":"'+attributeName+'"}';
console.log(queryString);
var urlPrefix = process.env.DBURL;
console.log(urlPrefix);
var options = {
method: 'GET',
url: urlPrefix+'/rest/dynamiccode?q='+queryString,
headers:
{ 'cache-control': 'no-cache',
'x-apikey': process.env.API_KEY
}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
bodyJson = JSON.parse(body);
responseJson.fulfillmentText = bodyJson[0]["text"];
res.json(responseJson);
});
}
else if(action === 'getInfo'){
//let stdName = req.body.queryResult.parameters.planet;
let attributeName = req.body.queryResult.parameters.attribute;
let contexts = req.body.queryResult.outputContexts;
console.log(contexts);
var item = contexts.find(item => item.name.endsWith('/contexts/std-attribute-set'));
var stdName = item.parameters.std;
var intentAction = item.parameters.action;
var request = require("request");
var queryString = '{"std":"'+stdName+'","intentAction":"'+action+'","attribute":"'+attributeName+'"}';
console.log(queryString);
var urlPrefix = process.env.DBURL;
console.log(urlPrefix);
var options = {
method: 'GET',
url: urlPrefix+'/rest/dynamiccode?q='+queryString,
headers:
{ 'cache-control': 'no-cache',
'x-apikey': process.env.API_KEY
}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
bodyJson = JSON.parse(body);
responseJson.fulfillmentText = bodyJson[0]["text"];
res.json(responseJson);
});
}
})