diff --git a/src/backend/config/rabbitmq.config.ts b/src/backend/config/rabbitmq.config.ts index d0da1d6..2acc48d 100644 --- a/src/backend/config/rabbitmq.config.ts +++ b/src/backend/config/rabbitmq.config.ts @@ -6,6 +6,8 @@ export const getRabbitMQOptions = (queueName: string, url?: string): Microservic options: { urls: [url || process.env.RABBITMQ_URL || 'amqp://localhost:5672'], queue: queueName, + exchange: 'system_events', + exchangeType: 'topic', queueOptions: { durable: true, // Черга не зникає при перезавантаженні RabbitMQ }, @@ -13,3 +15,18 @@ export const getRabbitMQOptions = (queueName: string, url?: string): Microservic }, }; }; + +export const getRabbitMQClientOptions = (url?: string) => { + return { + transport: Transport.RMQ as const, + options: { + urls: [url || process.env.RABBITMQ_URL || 'amqp://localhost:5672'], + queue: 'core_queue', + exchange: 'system_events', + exchangeType: 'topic', + queueOptions: { + durable: true, + }, + }, + }; +}; diff --git a/src/cli/index.ts b/src/cli/index.ts index ed50428..fe78bc0 100644 --- a/src/cli/index.ts +++ b/src/cli/index.ts @@ -232,9 +232,9 @@ bootstrap(); }, { relativePath: 'backend/src/app.module.ts', - content: `import { CoreService } from 'erp-plugin-sdk'; + content: `import { CoreService, getRabbitMQClientOptions } from 'erp-plugin-sdk'; import { Module } from '@nestjs/common'; -import { ClientsModule, Transport } from '@nestjs/microservices'; +import { ClientsModule } from '@nestjs/microservices'; import { AppController } from './app.controller'; import { PingController } from './ping.controller'; @@ -243,14 +243,7 @@ import { PingController } from './ping.controller'; ClientsModule.register([ { name: 'RABBITMQ_CLIENT', - transport: Transport.RMQ, - options: { - urls: [process.env.RABBITMQ_URL || 'amqp://localhost:5672'], - queue: 'core_queue', - queueOptions: { - durable: true, - }, - }, + ...getRabbitMQClientOptions(), }, ]), ],