add server sent events

This commit is contained in:
2025-02-04 11:58:20 +05:30
parent bb7f11c6bf
commit 6a57fed0dc
9 changed files with 100 additions and 3 deletions

View File

@@ -9,6 +9,7 @@ import {
permitModel,
UpdatePermitInput,
} from "./permit.schema";
import { ChangeEvent, dbEvents } from "../realtime";
export async function createPermit(input: CreatePermitInput, tenantId: string) {
const permit = await permitModel.create({
@@ -17,6 +18,13 @@ export async function createPermit(input: CreatePermitInput, tenantId: string) {
...input,
});
dbEvents.emit("change", {
type: "insert",
collection: "permits",
document: permit,
requiredClaims: ["permit:read"],
} as ChangeEvent);
return permit;
}
@@ -172,13 +180,33 @@ export async function updatePermit(
.populate({ path: "assignedTo", select: "pid name avatar" })
.populate({ path: "createdBy", select: "pid name avatar" });
if (updatePermitResult) {
dbEvents.emit("change", {
type: "update",
collection: "permits",
document: updatePermitResult,
requiredClaims: ["permit:read"],
} as ChangeEvent);
}
return updatePermitResult;
}
export async function deletePermit(permitId: string, tenantId: string) {
return await permitModel.deleteOne({
const res = await permitModel.deleteOne({
$and: [{ tenantId: tenantId }, { pid: permitId }],
});
dbEvents.emit("change", {
type: "delete",
collection: "permits",
document: {
pid: permitId,
},
requiredClaims: ["permit:read"],
} as ChangeEvent);
return res;
}
export async function searchPermit(params: PageQueryParams, tenantId: string) {