@jupiterone/jupiterone-mcp
Version:
Model Context Protocol server for JupiterOne account rules and rule details
60 lines • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AlertService = void 0;
const queries_js_1 = require("../graphql/queries.js");
class AlertService {
client;
constructor(client) {
this.client = client;
}
/**
* List alert instances with optional filtering
*/
async listAlertInstances(alertStatus, limit, cursor) {
const variables = {};
if (alertStatus)
variables.alertStatus = alertStatus;
if (limit)
variables.limit = limit;
if (cursor)
variables.cursor = cursor;
try {
const response = await this.client.request(queries_js_1.LIST_ALERT_INSTANCES, variables);
if (!response?.listAlertInstances) {
throw new Error('Invalid response structure from JupiterOne API');
}
return response.listAlertInstances;
}
catch (error) {
console.error('Error in listAlertInstances:', error);
throw error;
}
}
/**
* Get all alert instances by paginating through all pages
*/
async getAllAlertInstances(alertStatus) {
const allInstances = [];
let cursor = null;
let hasNextPage = true;
try {
while (hasNextPage) {
const response = await this.listAlertInstances(alertStatus, 100, cursor || undefined);
if (!response?.instances) {
console.error('Unexpected response structure:', response);
break;
}
allInstances.push(...response.instances);
cursor = response.pageInfo.endCursor;
hasNextPage = response.pageInfo.hasNextPage;
}
return allInstances;
}
catch (error) {
console.error('Error in getAllAlertInstances:', error);
throw error;
}
}
}
exports.AlertService = AlertService;
//# sourceMappingURL=alert-service.js.map