import {EventHandler, } from "./EventHandler"; import {Container} from "../Container/Container"; import {ReminderEvent} from "./Handlers/ReminderEvent"; import {ElementCreatedEvent} from "./EventClasses/ElementCreatedEvent"; import {sendCreatedNotificationEventHandler} from "./Handlers/SendCreatedNotification"; import {PlaydateModel} from "../Database/Models/PlaydateModel"; import {TimedEvent} from "./EventHandler.types"; import {CleanupEvent} from "./Handlers/CleanupEvent"; import {Logger} from "log4js"; import {ElementChangedEvent} from "./EventClasses/ElementChangedEvent"; import {GroupModel} from "../Database/Models/GroupModel"; import {sendLeaderChangeNotificationEventHandler} from "./Handlers/LeaderChanged"; export class DefaultEvents { public static setupTimed() { const eventHandler = Container.get(EventHandler.name); const events: TimedEvent[] = [ new ReminderEvent(), new CleanupEvent(eventHandler, Container.get("logger")) ] events.forEach((event) => { eventHandler.addTimed(event); }) } public static setupHandlers() { const eventHandler = Container.get(EventHandler.name); eventHandler.addHandler>(ElementCreatedEvent.name, { method: sendCreatedNotificationEventHandler, persistent: true }); eventHandler.addHandler>(ElementChangedEvent.name, { method: sendLeaderChangeNotificationEventHandler, persistent: true }) } }