37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
|
|
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;
|
|
}
|
|
}
|
|
} |