UNPKG

dotup-ts-node-skills-game

Version:
60 lines (58 loc) 2.75 kB
"use strict"; 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