UNPKG

pockybot

Version:

Spark bot that handles team recognition

52 lines (51 loc) 2.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const trigger_1 = require("../../models/trigger"); const constants_1 = require("../../constants"); const logger_1 = require("../logger"); const database_1 = require("../../models/database"); const command_1 = require("../../models/command"); const xmlMessageParser_1 = require("../parsers/xmlMessageParser"); class Finish extends trigger_1.default { constructor(winnersService, resultsService, pmResultsService, resetService, config, webex) { super(); this.winnersService = winnersService; this.resultsService = resultsService; this.pmResultsService = pmResultsService; this.reset = resetService; this.config = config; this.webex = webex; } isToTriggerOn(message) { if (!(this.config.checkRole(message.personId, database_1.Role.Admin) || this.config.checkRole(message.personId, database_1.Role.Finish))) { return false; } let parsedMessage = xmlMessageParser_1.default.parseNonPegMessage(message); return parsedMessage.botId === constants_1.default.botId && parsedMessage.command.toLowerCase() === command_1.Command.Finish; } async createMessage(commandMessage, room) { let results; try { results = await this.resultsService.returnResultsMarkdown(); logger_1.Logger.debug('[Finish.createMessage] Got results'); } catch (error) { logger_1.Logger.error(`[Finish.createMessage] Error returning results: ${error.message}`); return { markdown: 'error returning results' }; } this.webex.messages.create({ markdown: results, roomId: room }); try { await this.pmResultsService.pmResults(); logger_1.Logger.information(`[Finish.createMessage] Finished sending PMs.`); } catch (error) { logger_1.Logger.error(`[Finish.createMessage] Error PMing results: ${error.message}`); return { markdown: `Error while trying to PM results` }; } return undefined; } } exports.default = Finish;