Как проверить значение слота в навыке alexa с помощью значения базы данных - PullRequest
0 голосов
/ 09 сентября 2018

            if (!updatedIntent.slots.patient_name.value) 
            {                
                const slotToElicit = 'patient_name';
                const speechOutput = 'What is the patient name ?';
                const repromptSpeech = speechOutput;
                this.emit(':elicitSlot', slotToElicit,speechOutput,repromptSpeech); 
                  
                checkPatientExists(this,updatedIntent);                           
                           
            } 
        
         else if(!updatedIntent.slots.date.value){
                const slotToElicit = 'date';
                const speechOutput = 'When do you want the appointment ?';
                const repromptSpeech = speechOutput;
                this.emit(':elicitSlot', slotToElicit,speechOutput,repromptSpeech);
            }
            
            
            //validating the patient name
            
            function checkPatientExists(inst,updatedIntent){
    var patientName=updatedIntent.slots.patient_name.value;
    pool
    .query({rowsAsArray:true, sql:"select first_name from demographics where first_name='"+patientName+"'"})
    .then(res=>{
         var output=JSON.stringify(res);
         var result=output.substring(3,output.length-3)
         console.log(result);
          if(result.toLowerCase===patientName.toLowerCase){
            inst.response.speak("Your Appointment has been confirmed ")
                           .cardRenderer("patient name: " , result);
                           inst.emit(':responseReady');
          }else{
            inst.response.speak("Patient does not exists")
                          .cardRenderer("patient name: ", patientName);
                          inst.emit(':responseReady');                         
            
          }
    }) 
    .catch(err => {               
        inst.emit(':ask', 'patient name does not exist, please try again');
     console.log("not connected due to error: " + err);
        
    });
 }
            
            
            

Я пытаюсь подтвердить значение слота значением базы данных, но элемент управления всегда переходит к следующему слоту после получения значения для первого слота. Как я могу проверить значение первого слота, прежде чем запрашивать пользовательский ввод для второго слота?

помогите пожалуйста

...