pnp-scheduler/source/Events/DefaultEvents.ts

33 lines
No EOL
1.1 KiB
TypeScript

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 "../Models/PlaydateModel";
import {TimedEvent} from "./EventHandler.types";
import {CleanupEvent} from "./Handlers/CleanupEvent";
import {Logger} from "log4js";
export class DefaultEvents {
public static setupTimed() {
const eventHandler = Container.get<EventHandler>(EventHandler.name);
const events: TimedEvent[] = [
new ReminderEvent(),
new CleanupEvent(eventHandler, Container.get<Logger>("logger"))
]
events.forEach((event) => {
eventHandler.addTimed(event);
})
}
public static setupHandlers() {
const eventHandler = Container.get<EventHandler>(EventHandler.name);
eventHandler.addHandler<ElementCreatedEvent<PlaydateModel>>(ElementCreatedEvent.name, {
method: sendCreatedNotificationEventHandler,
persistent: true
});
}
}