mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-27 07:22:53 +00:00
57 lines
1.8 KiB
TypeScript
57 lines
1.8 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
import { HttpModule } from '@nestjs/axios';
|
|
import { ConfigModule, ConfigService } from '@nestjs/config';
|
|
import { ClientsModule, Transport } from '@nestjs/microservices';
|
|
import { NotificationsController } from './notifications.controller';
|
|
import { NotificationsService } from './notifications.service';
|
|
import { EmailAdapter, SmsAdapter, PushAdapter } from './notification.adapters';
|
|
import { EmailClientService } from './email-client.service';
|
|
import { SmsClientService } from './sms-client.service';
|
|
|
|
@Module({
|
|
imports: [
|
|
HttpModule.register({ timeout: 10_000 }),
|
|
ClientsModule.registerAsync([
|
|
{
|
|
name: 'EMAIL_SERVICE',
|
|
imports: [ConfigModule],
|
|
inject: [ConfigService],
|
|
useFactory: (config: ConfigService) => ({
|
|
transport: Transport.RMQ,
|
|
options: {
|
|
urls: [config.get<string>('RABBITMQ_URL') ?? 'amqp://localhost:5672'],
|
|
queue: config.get<string>('EMAIL_QUEUE') ?? 'email_queue',
|
|
queueOptions: { durable: true },
|
|
noAck: true,
|
|
},
|
|
}),
|
|
},
|
|
{
|
|
name: 'SMS_SERVICE',
|
|
imports: [ConfigModule],
|
|
inject: [ConfigService],
|
|
useFactory: (config: ConfigService) => ({
|
|
transport: Transport.RMQ,
|
|
options: {
|
|
urls: [config.get<string>('RABBITMQ_URL') ?? 'amqp://localhost:5672'],
|
|
queue: config.get<string>('SMS_QUEUE') ?? 'sms_queue',
|
|
queueOptions: { durable: true },
|
|
noAck: true,
|
|
},
|
|
}),
|
|
},
|
|
]),
|
|
],
|
|
controllers: [NotificationsController],
|
|
providers: [
|
|
NotificationsService,
|
|
EmailAdapter,
|
|
SmsAdapter,
|
|
PushAdapter,
|
|
EmailClientService,
|
|
SmsClientService,
|
|
],
|
|
exports: [NotificationsService, EmailClientService, SmsClientService],
|
|
})
|
|
export class NotificationsModule {}
|