mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-27 17:50:54 +00:00
51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
import { Module } from "@nestjs/common";
|
|
import { ConfigModule } from "@nestjs/config";
|
|
import { ClientsModule, Transport } from "@nestjs/microservices";
|
|
|
|
import { NotificationsService } from "./notifications.service";
|
|
import { SmsClientService } from "./sms-client.service";
|
|
import { EmailClientService } from "./email-client.service";
|
|
import { EmailNotificationStrategy } from "./strategies/notification.email.strategy";
|
|
import { SmsNotificationStrategy } from "./strategies/notification.sms.strategy";
|
|
|
|
// Fall back to a sane broker URL so an unset RABBITMQ_URL can't produce
|
|
// `urls: [undefined]` (which crashes amqp-connection-manager on 'heartbeat').
|
|
const RABBITMQ_URL =
|
|
process.env.RABBITMQ_URL ?? process.env.PAYMENT_RABBITMQ_URL ?? "amqp://localhost:5672";
|
|
|
|
@Module({
|
|
imports: [
|
|
ConfigModule,
|
|
ClientsModule.register([
|
|
{
|
|
name: "SMS_SERVICE",
|
|
transport: Transport.RMQ,
|
|
options: {
|
|
urls: [RABBITMQ_URL],
|
|
queue: process.env.SMS_QUEUE ?? "sms_queue",
|
|
queueOptions: { durable: true },
|
|
},
|
|
},
|
|
{
|
|
name: "EMAIL_SERVICE",
|
|
transport: Transport.RMQ,
|
|
options: {
|
|
urls: [RABBITMQ_URL],
|
|
queue: process.env.EMAIL_QUEUE ?? "email_queue",
|
|
queueOptions: { durable: true },
|
|
},
|
|
},
|
|
]),
|
|
],
|
|
controllers: [],
|
|
providers: [
|
|
EmailNotificationStrategy,
|
|
SmsNotificationStrategy,
|
|
NotificationsService,
|
|
SmsClientService,
|
|
EmailClientService,
|
|
],
|
|
exports: [NotificationsService, SmsClientService, EmailClientService],
|
|
})
|
|
export class NotificationsModule {}
|