dotup-ts-node-skills-game
Version:
Develop alexa typescript games
60 lines (58 loc) • 2.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const dotup_ts_logger_1 = require("dotup-ts-logger");
const RollcallMode_1 = require("../Rollcall/RollcallMode");
const RollcallState_1 = require("../Rollcall/RollcallState");
class AlexaGameRequestInterceptor {
constructor(gameRequirements) {
this.logger = dotup_ts_logger_1.LoggerFactory.createLogger('AlexaGameRequestInterceptor');
this.logger.Info('AlexaGameRequestInterceptor activated', 'ctor');
this.gameRequirements = gameRequirements;
}
async process(handlerInput) {
// Request - Game requirements
const requestAttributes = handlerInput.attributesManager.getRequestAttributes();
requestAttributes.gameRequirements = this.gameRequirements;
// Session - Create Rollcall model
const sessionAttributes = handlerInput.attributesManager.getSessionAttributes();
if (sessionAttributes.rollcall === undefined) {
sessionAttributes.rollcall = {
name: 'rollcall',
state: RollcallState_1.RollcallState.None
};
switch (this.gameRequirements.rollcallMode) {
case RollcallMode_1.RollcallMode.AssignToPlayer:
sessionAttributes.rollcall.rollcallButtonGroups = [];
break;
case RollcallMode_1.RollcallMode.PressToRegister:
sessionAttributes.rollcall.rollcallButtons = [];
break;
default:
}
}
}
}
exports.AlexaGameRequestInterceptor = AlexaGameRequestInterceptor;
/**
* If IRequestAttributes.persistentAttributes not is undefined, the data ist stored
* with the configured persistence adapter
*/
// export class SaveAttributesInterceptor implements ResponseInterceptor<HandlerInput, Response> {
// private readonly logger = LoggerFactory.createLogger('SaveAttributesInterceptor');
// constructor() {
// this.logger.Info('SaveAttributesInterceptor activated', 'ctor');
// }
// async process(input: HandlerInput, response?: Response): Promise<void> {
// // Presistent session attributes
// const r = <IRequestAttributes>input.attributesManager.getRequestAttributes();
// if (r.savePersistentAttributes && r.persistentAttributes !== undefined) {
// Object.keys(r.persistentAttributes)
// .forEach(item => {
// input.attributesManager.setPersistentAttributes({ [item]: r.persistentAttributes[item] });
// });
// await input.attributesManager.savePersistentAttributes();
// this.logger.Debug('Persistent attributes saved', 'process');
// }
// }
// }
//# sourceMappingURL=AlexaGameRequestInterceptor.js.map