Handle toggles

This commit is contained in:
Owen
2026-04-21 18:05:08 -07:00
parent f71355fe7a
commit b3aafa5fe6
5 changed files with 69 additions and 5 deletions

View File

@@ -46,6 +46,16 @@ export async function fireHealthCheckHealthyAlert(
...extra
}
});
await processAlerts({
eventType: "health_check_toggle",
orgId,
healthCheckId,
data: {
healthCheckId,
...(healthCheckName != null ? { healthCheckName } : {}),
...extra
}
});
} catch (err) {
logger.error(
`fireHealthCheckHealthyAlert: unexpected error for healthCheckId ${healthCheckId}`,
@@ -82,6 +92,16 @@ export async function fireHealthCheckNotHealthyAlert(
...extra
}
});
await processAlerts({
eventType: "health_check_toggle",
orgId,
healthCheckId,
data: {
healthCheckId,
...(healthCheckName != null ? { healthCheckName } : {}),
...extra
}
});
} catch (err) {
logger.error(
`fireHealthCheckNotHealthyAlert: unexpected error for healthCheckId ${healthCheckId}`,

View File

@@ -46,6 +46,16 @@ export async function fireResourceHealthyAlert(
...extra
}
});
await processAlerts({
eventType: "resource_toggle",
orgId,
resourceId,
data: {
resourceId,
...(resourceName != null ? { resourceName } : {}),
...extra
}
});
} catch (err) {
logger.error(
`fireResourceHealthyAlert: unexpected error for resourceId ${resourceId}`,
@@ -82,6 +92,16 @@ export async function fireResourceUnhealthyAlert(
...extra
}
});
await processAlerts({
eventType: "resource_toggle",
orgId,
resourceId,
data: {
resourceId,
...(resourceName != null ? { resourceName } : {}),
...extra
}
});
} catch (err) {
logger.error(
`fireResourceUnhealthyAlert: unexpected error for resourceId ${resourceId}`,
@@ -124,4 +144,4 @@ export async function fireResourceToggleAlert(
err
);
}
}
}

View File

@@ -46,6 +46,16 @@ export async function fireSiteOnlineAlert(
...extra
}
});
await processAlerts({
eventType: "site_toggle",
orgId,
siteId,
data: {
siteId,
...(siteName != null ? { siteName } : {}),
...extra
}
});
} catch (err) {
logger.error(
`fireSiteOnlineAlert: unexpected error for siteId ${siteId}`,
@@ -82,10 +92,20 @@ export async function fireSiteOfflineAlert(
...extra
}
});
await processAlerts({
eventType: "site_toggle",
orgId,
siteId,
data: {
siteId,
...(siteName != null ? { siteName } : {}),
...extra
}
});
} catch (err) {
logger.error(
`fireSiteOfflineAlert: unexpected error for siteId ${siteId}`,
err
);
}
}
}

View File

@@ -330,4 +330,4 @@ async function resolveEmailRecipients(emailActionId: number): Promise<string[]>
}
return Array.from(emailSet);
}
}

View File

@@ -2,6 +2,7 @@ import { MessageHandler } from "@server/routers/ws";
import { db, Newt, sites } from "@server/db";
import { eq } from "drizzle-orm";
import logger from "@server/logger";
import { fireSiteOfflineAlert } from "@server/lib/alerts";
/**
* Handles disconnecting messages from sites to show disconnected in the ui
@@ -24,12 +25,15 @@ export const handleNewtDisconnectingMessage: MessageHandler = async (
try {
// Update the client's last ping timestamp
await db
const [site] = await db
.update(sites)
.set({
online: false
})
.where(eq(sites.siteId, newt.siteId));
.where(eq(sites.siteId, newt.siteId))
.returning();
await fireSiteOfflineAlert(site.orgId, site.siteId, site.name);
} catch (error) {
logger.error("Error handling disconnecting message", { error });
}