rhombus-node-mcp
Version:
MCP server for Rhombus API
79 lines (78 loc) • 2.45 kB
JavaScript
import { postApi } from "../network/network.js";
export async function listRules(requestModifiers, sessionId) {
const res = await postApi({
route: "/rules/getRulesForOrg",
body: {},
modifiers: requestModifiers,
sessionId,
});
if (res.error) {
throw new Error(JSON.stringify(res));
}
return (res.rules?.map((rule) => ({
uuid: rule.uuid ?? undefined,
name: rule.name ?? undefined,
enabled: rule.enabled ?? undefined,
orgUuid: rule.orgUuid ?? undefined,
ruleType: rule.ruleType ?? undefined,
createdAtMs: rule.createdAtMs ?? undefined,
updatedAtMs: rule.updatedAtMs ?? undefined,
})) ?? []);
}
export async function createRule(ruleConfig, requestModifiers, sessionId) {
const res = await postApi({
route: "/rules/createRule",
body: ruleConfig,
modifiers: requestModifiers,
sessionId,
});
if (res.error) {
throw new Error(JSON.stringify(res));
}
return {
uuid: res.ruleUuid ?? undefined,
success: true,
};
}
export async function updateRule(ruleConfig, requestModifiers, sessionId) {
const res = await postApi({
route: "/rules/updateRule",
body: ruleConfig,
modifiers: requestModifiers,
sessionId,
});
if (res.error) {
throw new Error(JSON.stringify(res));
}
return { success: true };
}
export async function deleteRule(ruleUuid, requestModifiers, sessionId) {
const res = await postApi({
route: "/rules/deleteRule",
body: { ruleUuid },
modifiers: requestModifiers,
sessionId,
});
if (res.error) {
throw new Error(JSON.stringify(res));
}
return { uuid: ruleUuid, success: true };
}
export async function getRuleRecords(ruleUuid, requestModifiers, sessionId) {
const res = await postApi({
route: "/rulesRecords/getRulesEventRecords",
body: { ruleUuid },
modifiers: requestModifiers,
sessionId,
});
if (res.error) {
throw new Error(JSON.stringify(res));
}
return (res.rulesEventRecords?.map((record) => ({
uuid: record.uuid ?? undefined,
ruleUuid: record.ruleUuid ?? undefined,
triggeredAtMs: record.triggeredAtMs ?? undefined,
deviceUuid: record.deviceUuid ?? undefined,
locationUuid: record.locationUuid ?? undefined,
})) ?? []);
}