Files
zod-backend/src/common/modules/notification/notification.module.ts
Abdalhamid Alhamad c963b57904 feat: enhance card service validation and notification integration
- Added validation for card reference and limit in CardService to ensure data integrity.
- Improved error handling with detailed logging for invalid card states.
- Updated transaction notification listener to fetch parent account details and adjust balance notifications accordingly.
- Enhanced notification creation process to include status management for better tracking.
2026-01-14 13:27:02 +03:00

60 lines
2.1 KiB
TypeScript

import { MailerModule } from '@nestjs-modules/mailer';
import { forwardRef, Module } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { TypeOrmModule } from '@nestjs/typeorm';
import { TwilioModule } from 'nestjs-twilio';
import { CardModule } from '~/card/card.module';
import { RedisModule } from '~/common/redis/redis.module';
import { buildMailerOptions, buildTwilioOptions } from '~/core/module-options';
import { UserModule } from '~/user/user.module';
import { NotificationsController } from './controllers';
import { Notification } from './entities';
import {
CardNotificationListener,
KycNotificationListener,
MoneyRequestNotificationListener,
NotificationCreatedListener,
ProfileNotificationListener,
SystemAlertNotificationListener,
TransactionNotificationListener,
} from './listeners';
import { NotificationsRepository } from './repositories';
import { FirebaseService, NotificationFactory, NotificationsService, TwilioService } from './services';
import { MessagingSystemFactory, RedisPubSubMessagingService } from './services/messaging';
@Module({
imports: [
forwardRef(() => RedisModule.register()),
forwardRef(() => UserModule),
forwardRef(() => CardModule),
TypeOrmModule.forFeature([Notification]),
TwilioModule.forRootAsync({
useFactory: buildTwilioOptions,
inject: [ConfigService],
}),
MailerModule.forRootAsync({
useFactory: buildMailerOptions,
inject: [ConfigService],
}),
],
providers: [
NotificationsService,
NotificationFactory,
FirebaseService,
NotificationsRepository,
TwilioService,
NotificationCreatedListener,
TransactionNotificationListener,
MoneyRequestNotificationListener,
KycNotificationListener,
CardNotificationListener,
ProfileNotificationListener,
SystemAlertNotificationListener,
RedisPubSubMessagingService,
MessagingSystemFactory,
],
exports: [NotificationsService, NotificationFactory, NotificationCreatedListener],
controllers: [NotificationsController],
})
export class NotificationModule {}