in chat-bot/bot/bot.js [79:126]
async function nextQuestion(intentRequest) {
var sessionAttributes = intentRequest.sessionAttributes;
var score = parseInt(sessionAttributes.currentScore, 10);
var currentQuestionId = parseInt(sessionAttributes.currentQuestion, 10);
var currentSlot = numToWords.toWords(currentQuestionId);
const currentQuestionData = await getQuestion(currentQuestionId);
var nextQuestionId = currentQuestionId + 1;
var nextSlot = numToWords.toWords(nextQuestionId);
// Check the answer, add to score if correct
var isCorrect = false;
var userAnswer = intentRequest.currentIntent.slots[currentSlot];
// null user answer means a string response did not match any of the sample utterances
if (userAnswer) {
const answerData = await answerQuestion(currentQuestionId, userAnswer);
console.log(answerData.data);
isCorrect = answerData.data.result;
}
var messageContent = "";
if (isCorrect) {
score += currentQuestionData.data.points;
messageContent += `That is correct! The answer is "${currentQuestionData.data.answer}". New score is ${score} points! `;
} else {
messageContent += `Incorrect! The correct answer is "${currentQuestionData.data.answer}". `;
}
const newQuestionData = await getQuestion(nextQuestionId);
if (currentQuestionData.data.category != newQuestionData.data.category) {
messageContent += `Moving on the "${newQuestionData.data.category}" category. `
}
messageContent += `For ${newQuestionData.data.points} points: ${newQuestionData.data.question}`;
var message = {
contentType: 'PlainText',
content: messageContent
};
sessionAttributes.currentQuestion = nextQuestionId;
sessionAttributes.currentSlot = nextSlot;
sessionAttributes.currentScore = score;
return elicitSlot(sessionAttributes, intentRequest.currentIntent.name,
intentRequest.currentIntent.slots, nextSlot, message);
}