automatic token refresh, initial stage
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
var amazonHelper = require('./helpers/amazon');
|
||||
var databaseHelper = require('./helpers/database');
|
||||
|
||||
const config = require('./config');
|
||||
|
||||
require('isomorphic-fetch');
|
||||
|
||||
@@ -7,11 +10,6 @@ var alexa = require('alexa-app');
|
||||
|
||||
var bodyParser = require('body-parser');
|
||||
|
||||
const dbURL = 'mongodb://localhost:27017/tellall';
|
||||
const PORT = 5000;
|
||||
const TOKEN = 'Atza|IwEBIMv0spn-eZhjP8-R2Jjkb4VUi-EY4V3MX-wlJyr2P6YBUmIChl7VKgRberEdQ-Wolp53SqfwHbxlSo4-rdUgFYFAxImB622boeqUBBCtwybP0OTBJBT1CVm_FBr48Li5LkwR9DxPciCnc052ddohpjGuGZxsCqIJo2c-7LPEhH0Lx63VOFgfPIfBsrVqjDbPNrr5ApPUijKYZWurktb6ytTks8eFUSTyv3FDbE5HEng0qpE4mgSjdgBkEc8BgUfpm2QGvctINH9SioUJOJonxgTPYhbD4BEd-jdQHsltKFzkb3-Rm3lFhEu3_CQFxCeQ6yGe1the_qID3vnPfpSY6hyblgF5L_5d7bE7BWg8fm6rSwXv67L2sMwBOji6cuR0wVVvXfYxmgGIMGkVQrq-SPSdtCpx2BvBz2SqqN6a_98svP8ukvhwc_oJsN6VwEmTDFgutNf-XuGkuVii-k9-DncwuwD00LvJG1FhBvbvSyuv-a3LAJSqTmroemTDG0xzLn7ULFY5p-93sM0_ZNGFeW-lL_r1ldqM_5lFRKDta1Tkg7lT9-rHftgnpGs4zv7vGLIPzHpNiXjsKyCk-wMQrihhWlR15kiz7oKDeTf6wCIETg';
|
||||
const USER_ID = 'amzn1.ask.account.AGE34MG3VIQ75D4Q5CXFK25GUOXHZ2MIVSII3QUCOT3CP44IPE25PLD3DWW7HLWO2KVC7PC7VUXSZZEFPVHJ6PTDYVYYESJE35CE6VEXCE3BI3AK24TGO4CJXFF3SZ7IA4QVJRZC6EN4MUF2WUP4IB4CGDLRZZMYQENOFNBYWFXZHMZ5PA6S6ERK7NGEPUSDHXWKH26UGMIATMI';
|
||||
|
||||
var MongoClient = require ('mongodb').MongoClient;
|
||||
var ObjectID = require ('mongodb').ObjectID;
|
||||
|
||||
@@ -55,40 +53,33 @@ router.get ('/deleteSkill/:skillID', async (req, res, next) => {
|
||||
});
|
||||
|
||||
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 completeResult = {databaseUpdate:false, amazonUpdate:false, amazonMessage:''};
|
||||
|
||||
let result = db.collection('skill_list').update({_id: ObjectID(id)}, skill,{upsert:true}, (err, result)=>{
|
||||
if (err) throw(err);
|
||||
|
||||
completeResult.databaseUpdate = (JSON.parse(result).nModified===1);
|
||||
|
||||
let generatedInteractionModel = amazonHelper.generateInteractionModel(skill);
|
||||
|
||||
fetch(`https://api.amazonalexa.com/v0/skills/${skill.skillID}/interactionModel/locales/en-US`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
Authorization: TOKEN
|
||||
},
|
||||
body: generatedInteractionModel
|
||||
}).then(l=>l.text()).then(result=>{
|
||||
completeResult.amazonUpdate = (JSON.stringify(result)===JSON.stringify({}));
|
||||
completeResult.amazonMessage = JSON.stringify(result);
|
||||
res.json(completeResult);
|
||||
});
|
||||
amazonHelper.updateSkill(skill,db).then(amazonResult=>{
|
||||
if (amazonResult===200 || amazonResult===202){
|
||||
//Skill uploaded, it's ok to update database
|
||||
let result = db.collection('skill_list').update({_id: ObjectID(id)}, skill,{upsert:true}, (err, result)=>{
|
||||
if (JSON.parse(result).nModified===1){
|
||||
//database update ok
|
||||
res.json({result:0, message:'ok'});
|
||||
}else{
|
||||
res.json({result:-1, message:'ok'});
|
||||
}
|
||||
});
|
||||
}else{
|
||||
res.json({result:-1, message:'Amazon result ' + amazonResult});
|
||||
}
|
||||
}).catch(e=>{
|
||||
//skill upload went wrong, don't update database, send error
|
||||
res.json({result:-1, message:e});
|
||||
});
|
||||
|
||||
}else{
|
||||
//no new skills for now
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
console.log ('error:', e);
|
||||
next (e);
|
||||
}
|
||||
});
|
||||
|
||||
var skillID = 'amzn1.ask.skill.7115bfc9-313e-4728-830b-ebd19ce96cb3';
|
||||
@@ -168,10 +159,16 @@ app.use (bodyParser.json ());
|
||||
app.use ('/', router);
|
||||
|
||||
|
||||
MongoClient.connect (dbURL).then (database => {
|
||||
MongoClient.connect (config.dbURL).then (database => {
|
||||
db = database;
|
||||
db.collection ('intent_list');
|
||||
app.listen (PORT, () =>
|
||||
console.log ('Express server running on port ' + PORT)
|
||||
);
|
||||
|
||||
databaseHelper.initModule(db);
|
||||
|
||||
app.listen (config.PORT, () =>{
|
||||
console.log ('Express server running on port ' + config.PORT);
|
||||
databaseHelper.loadTokens();
|
||||
});
|
||||
}).catch(e=>{
|
||||
console.log("error : " + e);
|
||||
});
|
||||
Reference in New Issue
Block a user