static-handlers.js: Pflicht-Handler (Launch/Help/Cancel/Fallback/Error) ausgelagert
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
// ---- Standard-Handler (Pflicht für jeden Alexa Skill) ----
|
||||
const Alexa = require('ask-sdk-core');
|
||||
|
||||
const LaunchRequestHandler = {
|
||||
canHandle(handlerInput) {
|
||||
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'LaunchRequest';
|
||||
},
|
||||
handle(handlerInput) {
|
||||
const speakOutput = 'Willkommen beim Hausassistent. Du kannst mich zum Beispiel fragen, wie warm es in einem Raum ist.';
|
||||
return handlerInput.responseBuilder
|
||||
.speak(speakOutput)
|
||||
.reprompt(speakOutput)
|
||||
.getResponse();
|
||||
},
|
||||
};
|
||||
|
||||
const HelpIntentHandler = {
|
||||
canHandle(handlerInput) {
|
||||
return (
|
||||
Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest' &&
|
||||
Alexa.getIntentName(handlerInput.requestEnvelope) === 'AMAZON.HelpIntent'
|
||||
);
|
||||
},
|
||||
handle(handlerInput) {
|
||||
const speakOutput = 'Du kannst mich zum Beispiel fragen: wie warm ist es im Wohnzimmer.';
|
||||
return handlerInput.responseBuilder.speak(speakOutput).reprompt(speakOutput).getResponse();
|
||||
},
|
||||
};
|
||||
|
||||
const CancelAndStopIntentHandler = {
|
||||
canHandle(handlerInput) {
|
||||
return (
|
||||
Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest' &&
|
||||
(Alexa.getIntentName(handlerInput.requestEnvelope) === 'AMAZON.CancelIntent' ||
|
||||
Alexa.getIntentName(handlerInput.requestEnvelope) === 'AMAZON.StopIntent')
|
||||
);
|
||||
},
|
||||
handle(handlerInput) {
|
||||
const speakOutput = 'Bis bald!';
|
||||
return handlerInput.responseBuilder.speak(speakOutput).getResponse();
|
||||
},
|
||||
};
|
||||
|
||||
const FallbackIntentHandler = {
|
||||
canHandle(handlerInput) {
|
||||
return (
|
||||
Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest' &&
|
||||
Alexa.getIntentName(handlerInput.requestEnvelope) === 'AMAZON.FallbackIntent'
|
||||
);
|
||||
},
|
||||
handle(handlerInput) {
|
||||
const speakOutput = 'Das habe ich nicht verstanden. Du kannst mich zum Beispiel fragen, wie warm es im Wohnzimmer ist.';
|
||||
return handlerInput.responseBuilder.speak(speakOutput).reprompt(speakOutput).getResponse();
|
||||
},
|
||||
};
|
||||
|
||||
const SessionEndedRequestHandler = {
|
||||
canHandle(handlerInput) {
|
||||
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'SessionEndedRequest';
|
||||
},
|
||||
handle(handlerInput) {
|
||||
return handlerInput.responseBuilder.getResponse();
|
||||
},
|
||||
};
|
||||
|
||||
const ErrorHandler = {
|
||||
canHandle() {
|
||||
return true;
|
||||
},
|
||||
handle(handlerInput, error) {
|
||||
console.error(`~~~~ Error handled: ${error.stack}`);
|
||||
const speakOutput = 'Entschuldigung, da ist etwas schiefgelaufen. Bitte versuch es noch einmal.';
|
||||
return handlerInput.responseBuilder.speak(speakOutput).reprompt(speakOutput).getResponse();
|
||||
},
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
LaunchRequestHandler,
|
||||
HelpIntentHandler,
|
||||
CancelAndStopIntentHandler,
|
||||
FallbackIntentHandler,
|
||||
SessionEndedRequestHandler,
|
||||
ErrorHandler,
|
||||
};
|
||||
Reference in New Issue
Block a user