diff --git a/backend/helpers/externalSource.js b/backend/helpers/externalSource.js index 2719ca9..7c87b00 100644 --- a/backend/helpers/externalSource.js +++ b/backend/helpers/externalSource.js @@ -33,10 +33,10 @@ getDataFromWPJSON = function (sourceUrl, page = 1, maxPosts = 10) { } module.exports = { - getAnswerFromWP : async function (sourceUrl){ + getAnswerFromWP : function (sourceUrl){ //This function will extract needed data from JSON, which we got from getDataFromWPJSON //At the moment, it's taking titles and creates answer - return await new Promise((resolve,reject)=>{ + return new Promise((resolve,reject)=>{ getDataFromWPJSON(sourceUrl).then(rawData=>{ let result=''; rawData.forEach(post=>{ diff --git a/backend/models/alexa.js b/backend/models/alexa.js index a3deb6c..ccb9a1f 100644 --- a/backend/models/alexa.js +++ b/backend/models/alexa.js @@ -71,22 +71,38 @@ module.exports = { if (this.attributes['LaunchRequestYesNo']) { this.attributes['LaunchRequestYesNo'] = false; } - let answer = ''; + let answer; switch (intent.answerType){ case constants.answerType.PREDEFINED: - answer = intent.answer; + answer = new Promise((resolve,reject)=>{ + resolve(intent.answer); + }); break; case constants.answerType.EXTERNAL_SOURCE_WP_JSON: - answer = predefinedSourceHelper.getAnswerFromWP(intent.externalAnswerSource); + predefinedSourceHelper.getAnswerFromWP(intent.externalAnswerSource).then(answer=>{ + answer = new Promise((resolve,reject)=>{ + resolve(answer); + }); + }).catch(error=>{ + reject(error); + }); break; case constants.answerType.EXTERNAL_SOURCE_RSS: answer = 'Not implemented yet' break; } - this.response - .speak (answer) - .listen (constants.voiceResponseStrings.GENERIC_CONTINUE); //Phrase from listen doesn't work !!! - this.emit (':responseReady'); + + answer.then(answer=>{ + this.response + .speak (answer) + .listen (constants.voiceResponseStrings.GENERIC_CONTINUE); //Phrase from listen doesn't work !!! + this.emit (':responseReady'); + }).catch(error=>{ + this.response + .speak (error) + .listen (constants.voiceResponseStrings.GENERIC_CONTINUE); //Phrase from listen doesn't work !!! + this.emit (':responseReady'); + }); }; });