47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import { Module, forwardRef } from '@nestjs/common';
|
|
import { MikroOrmModule } from '@mikro-orm/nestjs';
|
|
import { BullModule } from '@nestjs/bullmq';
|
|
import { JwtModule } from '@nestjs/jwt';
|
|
import { NotificationQueueService } from './services/notification-queue.service';
|
|
import { SmsProcessor } from './processors/sms.processor';
|
|
import { AuthModule } from '../auth/auth.module';
|
|
import { ConfigService } from '@nestjs/config';
|
|
import { NotificationQueueNameEnum } from './constants/queue';
|
|
import { UtilsModule } from '../utils/utils.module';
|
|
import { AdminModule } from '../admin/admin.module';
|
|
import { SmsService } from './services/sms.service';
|
|
|
|
|
|
@Module({
|
|
imports: [
|
|
forwardRef(() => AuthModule),
|
|
JwtModule,
|
|
BullModule.registerQueue(
|
|
{ name: NotificationQueueNameEnum.SMS },
|
|
{ name: NotificationQueueNameEnum.PUSH },
|
|
{ name: NotificationQueueNameEnum.IN_APP },
|
|
),
|
|
BullModule.forRootAsync({
|
|
inject: [ConfigService],
|
|
useFactory: (config: ConfigService) => ({
|
|
connection: {
|
|
host: config.get('REDIS_HOST') || 'captain.dev.danakcorp.com',
|
|
port: config.get('REDIS_PORT') || 50601,
|
|
password: config.get('REDIS_PASSWORD'), // Pull from .env
|
|
},
|
|
}),
|
|
}),
|
|
AdminModule,
|
|
UtilsModule,
|
|
],
|
|
controllers: [],
|
|
providers: [
|
|
NotificationQueueService,
|
|
SmsProcessor,
|
|
SmsService,
|
|
],
|
|
exports: [
|
|
NotificationQueueService, SmsService],
|
|
})
|
|
export class NotificationsModule { }
|