Files
sf-sim/packages/sim-shared/infrastructure/RabbitManagementClient.ts

37 lines
1.0 KiB
TypeScript
Raw Normal View History

import axios, { AxiosInstance } from "axios";
import { Queue } from "sim-shared/domain/Queue.js";
export class RabbitManagementClient {
private client: AxiosInstance;
constructor(args: {
baseURL: string;
user: string;
password: string;
}) {
this.client = axios.create({
baseURL: args.baseURL,
auth: {
username: args.user,
password: args.password,
},
});
}
public async getQueues(): Promise<Queue[]> {
try {
const response = await this.client.get("/queues")
return response.data.map((q: any) => ({
name: q.name,
messages: q.messages,
ready: q.messages_ready,
unacked: q.messages_unacknowledged,
consumers: q.consumers
}))
} catch (err) {
console.error("[RabbitManagementClient] Error obteniendo colas", err);
throw err;
}
}
}