rhombus-node-mcp
Version:
MCP server for Rhombus API
97 lines (96 loc) • 3.41 kB
JavaScript
import { postApi } from "../network/network.js";
import { formatTimestamp } from "../util.js";
export async function getPolicyAlerts(args, requestModifiers, sessionId) {
return await postApi({
route: "/event/getPolicyAlerts",
body: args,
modifiers: requestModifiers,
sessionId,
}).then(response => {
return {
...response,
policyAlerts: (response.policyAlerts || []).map((alert) => ({
...alert,
labels: [
...(alert.alertingEventFaces || []),
...(alert.alertingEventVehicles || []),
].flatMap(alert => alert.labels),
createdOnString: alert.timestampMs
? formatTimestamp(alert.timestampMs, args.timeZone)
: undefined,
})),
};
});
}
export async function getExpiringPolicyAlerts(args, requestModifiers, sessionId) {
return await postApi({
route: "/event/getExpiringPolicyAlerts",
body: args,
modifiers: requestModifiers,
sessionId,
}).then(response => {
return {
...response,
policyAlerts: (response.policyAlerts || []).map((alert) => ({
...alert,
createdOnString: alert.timestampMs
? formatTimestamp(alert.timestampMs)
: undefined,
})),
};
});
}
export async function getPolicyAlertDetails(alertUuid, requestModifiers, sessionId) {
const response = await postApi({
route: "/event/getPolicyAlertDetails",
body: { policyAlertUuid: alertUuid },
modifiers: requestModifiers,
sessionId,
});
return { policyAlerts: response.policyAlert ? [response.policyAlert] : [] };
}
export async function dismissPolicyAlert(alertUuid, requestModifiers, sessionId) {
const response = await postApi({
route: "/event/dismissPolicyAlertV2",
body: { policyAlertUuid: alertUuid },
modifiers: requestModifiers,
sessionId,
});
return { policyAlerts: [], dismissed: true };
}
export async function getUnhealthyDeviceAlerts(requestModifiers, sessionId) {
const response = await postApi({
route: "/event/getUnhealthyDeviceAlerts",
body: {},
modifiers: requestModifiers,
sessionId,
});
return { policyAlerts: response.unhealthyDeviceAlerts || [] };
}
export async function getPolicyAlertGroups(payload, requestModifiers, sessionId) {
const body = {};
if (payload.afterTimestampMs)
body.afterTimestampMs = payload.afterTimestampMs;
if (payload.beforeTimestampMs)
body.beforeTimestampMs = payload.beforeTimestampMs;
if (payload.deviceFilter)
body.deviceUuids = payload.deviceFilter;
if (payload.locationFilter)
body.locationUuids = payload.locationFilter;
if (payload.maxResults)
body.maxResults = payload.maxResults;
if (payload.lastTimestampMs != null)
body.lastTimestampMs = payload.lastTimestampMs;
if (payload.lastUuid)
body.lastUuid = payload.lastUuid;
const response = await postApi({
route: "/event/getPolicyAlertGroupsV2",
body,
modifiers: requestModifiers,
sessionId,
});
return {
...response,
policyAlerts: response.policyAlertGroups || [],
};
}