31 lines
675 B
TypeScript
31 lines
675 B
TypeScript
import { EventEmitter } from "stream";
|
|
import { createEvent } from "./events/events.service";
|
|
|
|
export type ChangeEvent = {
|
|
tenantId: string;
|
|
type: "insert" | "update" | "delete";
|
|
collection: "permits" | "processed" | "orgs";
|
|
orgId?: string;
|
|
document?: Object;
|
|
};
|
|
|
|
export type AlertEvent = {
|
|
type: "insert";
|
|
collection: "alerts";
|
|
document: {
|
|
pid: string;
|
|
title: string;
|
|
recipientType: "user" | "team";
|
|
recipientId: string;
|
|
referenceId?: string;
|
|
referenceCollection?: string;
|
|
createdAt: Date;
|
|
};
|
|
};
|
|
|
|
export const dbEvents = new EventEmitter();
|
|
|
|
dbEvents.on("change", async (event: ChangeEvent) => {
|
|
await createEvent(event);
|
|
});
|