@grouparoo/core
Version:
The Grouparoo Core
27 lines (22 loc) • 791 B
text/typescript
import { chatRoom, ParamsFrom } from "actionhero";
import { CLSTask } from "../../../classes/tasks/clsTask";
import { APIData } from "../../../modules/apiData";
import { Status } from "../../../modules/status";
export class StatusSample extends CLSTask {
name = "status:sample";
description = "Calculate and set one of the status samples";
frequency = 0;
queue = "system";
inputs = {
index: { required: true, formatter: APIData.ensureNumber },
} as const;
async runWithinTransaction({ index }: ParamsFrom<StatusSample>) {
const method = Status.statusSampleReporters[index];
if (!method) return;
const response = await method();
const metrics = await Status.set(response);
await chatRoom.broadcast({}, "system:status", {
metrics,
});
}
}