rhombus-node-mcp
Version:
MCP server for Rhombus API
67 lines (66 loc) • 2.06 kB
JavaScript
import { postApi } from "../network/network.js";
export async function getDoorControllerRules(doorControllerUuid, requestModifiers, sessionId) {
const res = await postApi({
route: "/doorcontroller/getDoorControllerRules",
body: { doorControllerUuid },
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,
deviceUuid: rule.deviceUuid ?? undefined,
enabled: rule.enabled ?? undefined,
ruleType: rule.ruleType ?? undefined,
})) ?? []);
}
export async function createDoorControllerRule(ruleConfig, requestModifiers, sessionId) {
const res = await postApi({
route: "/doorcontroller/createDoorControllerRule",
body: ruleConfig,
modifiers: requestModifiers,
sessionId,
});
if (res.error) {
throw new Error(JSON.stringify(res));
}
return {
uuid: res.ruleUuid ?? undefined,
success: true,
};
}
export async function getDoorPolicies(requestModifiers, sessionId) {
const res = await postApi({
route: "/policy/getDoorPolicies",
body: {},
modifiers: requestModifiers,
sessionId,
});
if (res.error) {
throw new Error(JSON.stringify(res));
}
return (res.policies?.map((policy) => ({
uuid: policy.uuid ?? undefined,
name: policy.name ?? undefined,
orgUuid: policy.orgUuid ?? undefined,
enabled: policy.enabled ?? undefined,
})) ?? []);
}
export async function createDoorPolicy(policyConfig, requestModifiers, sessionId) {
const res = await postApi({
route: "/policy/createDoorPolicy",
body: policyConfig,
modifiers: requestModifiers,
sessionId,
});
if (res.error) {
throw new Error(JSON.stringify(res));
}
return {
uuid: res.policyUuid ?? undefined,
success: true,
};
}