137 lines
3.4 KiB
JavaScript
137 lines
3.4 KiB
JavaScript
var amazonHelper = require('./helpers/amazon');
|
|
|
|
var express = require('express');
|
|
var alexa = require('alexa-app');
|
|
|
|
var bodyParser = require('body-parser');
|
|
|
|
const dbURL = 'mongodb://localhost:27017/tellall';
|
|
const PORT = 5000;
|
|
|
|
|
|
var MongoClient = require ('mongodb').MongoClient;
|
|
var ObjectID = require ('mongodb').ObjectID;
|
|
|
|
const router = express.Router ();
|
|
|
|
router.get ('/getSkill/:id', async (req, res, next) => {
|
|
try {
|
|
const id = req.params.id;
|
|
|
|
if (id.length !== 24){
|
|
res.json([]);
|
|
throw("error");
|
|
}
|
|
|
|
db.collection ('skill_list').find({_id: ObjectID(id)}).toArray((err,result)=>{
|
|
if (err){
|
|
throw err;
|
|
res.json([]);
|
|
}else{
|
|
res.json(result);
|
|
}
|
|
});
|
|
|
|
} catch (e) {
|
|
console.log ('error:', e);
|
|
next (e);
|
|
}
|
|
});
|
|
|
|
|
|
router.get ('/deleteSkill/:skillID', async (req, res, next) => {
|
|
try {
|
|
let id = req.params.id;
|
|
let result = db.collection('skill_list').remove({_id: ObjectID(id)},(err,result)=>{
|
|
if (err) throw err;
|
|
res.json(result);
|
|
});
|
|
} catch (e) {
|
|
console.log ('error:', e);
|
|
next (e);
|
|
}
|
|
});
|
|
|
|
router.post ('/updateSkill/:id', async (req, res, next) => {
|
|
try {
|
|
let id = req.params.id;
|
|
let skill = req.body;
|
|
delete skill._id;
|
|
if (id !== '-1'){
|
|
let result = db.collection('skill_list').update({_id: ObjectID(id)}, skill,{upsert:true}, (err, result)=>{
|
|
if (err) throw(err);
|
|
amazonHelper.sendUpdateToAmazon(id, db);
|
|
res.json(result);
|
|
});
|
|
}else{
|
|
//no new skills for now
|
|
}
|
|
|
|
} catch (e) {
|
|
console.log ('error:', e);
|
|
next (e);
|
|
}
|
|
});
|
|
|
|
|
|
|
|
|
|
var app = express();
|
|
|
|
// ALWAYS setup the alexa app and attach it to express before anything else.
|
|
var alexaApp = new alexa.app('step3');
|
|
|
|
alexaApp.express({
|
|
expressApp: app,
|
|
|
|
// verifies requests come from amazon alexa. Must be enabled for production.
|
|
// You can disable this if you're running a dev environment and want to POST
|
|
// things to test behavior. enabled by default.
|
|
checkCert: false,
|
|
|
|
// sets up a GET route when set to true. This is handy for testing in
|
|
// development, but not recommended for production. disabled by default
|
|
debug: true
|
|
});
|
|
|
|
// now POST calls to /test in express will be handled by the app.request() function
|
|
|
|
// from here on you can setup any other express routes or middlewares as normal
|
|
app.set("view engine", "ejs");
|
|
|
|
alexaApp.launch(function(request, response) {
|
|
response.say("You launched Saburly app!");
|
|
});
|
|
|
|
alexaApp.intent("GetProcessIntent", {
|
|
"utterances": [
|
|
"tell me about projects", "say something about your project", "what are your projects"
|
|
]
|
|
},
|
|
function(request, response) {
|
|
response.say("We collaborate closely with our clients at each step of the developmentprocess. From designing the UX to developing the front-end andarchitecting the back-end.");
|
|
}
|
|
);
|
|
|
|
app.use (function (req, res, next) {
|
|
res.header ('Access-Control-Allow-Origin', '*');
|
|
res.header (
|
|
'Access-Control-Allow-Headers',
|
|
'Origin, Content-Type'
|
|
);
|
|
res.header ('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
|
|
res.header ('Access-Control-Allow-Credentials', 'true');
|
|
next ();
|
|
});
|
|
|
|
app.use (bodyParser.json ());
|
|
app.use ('/', router);
|
|
|
|
|
|
MongoClient.connect (dbURL).then (database => {
|
|
db = database;
|
|
db.collection ('intent_list');
|
|
app.listen (PORT, () =>
|
|
console.log ('Express server running on port ' + PORT)
|
|
);
|
|
}); |