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

View File

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

View File

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

View File

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

View File

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