Files
dmail-api/src/modules/email/email.module.ts
T
2025-07-20 14:48:02 +03:30

58 lines
2.0 KiB
TypeScript

import { MikroOrmModule } from "@mikro-orm/nestjs";
import { BullModule } from "@nestjs/bullmq";
import { Module } from "@nestjs/common";
import { JwtModule } from "@nestjs/jwt";
// import { EmailGatewayController } from "./controllers/email-gateway.controller";
import { EMAIL_QUEUE_CONSTANTS } from "./constants/email-events.constant";
import { EmailController } from "./email.controller";
import { EmailGateway } from "./gateways/email.gateway";
import { EmailMonitoringProcessor } from "./queue/email-monitoring.processor";
import { EmailHeadersService } from "./services/email-headers.service";
import { EmailMonitoringService } from "./services/email-monitoring.service";
import { EmailNotificationService } from "./services/email-notification.service";
import { EmailSpamService } from "./services/email-spam.service";
import { EmailService } from "./services/email.service";
import { MailboxResolverService } from "./services/mailbox-resolver.service";
import { jwtConfig } from "../../configs/jwt.config";
import { MailServerModule } from "../mail-server/mail-server.module";
import { TemplatesModule } from "../templates/templates.module";
import { WebSocketAuthService } from "./services/websocket-auth.service";
import { User } from "../users/entities/user.entity";
import { UsersModule } from "../users/users.module";
@Module({
imports: [
MailServerModule,
UsersModule,
TemplatesModule,
JwtModule.registerAsync(jwtConfig()),
MikroOrmModule.forFeature([User]),
BullModule.registerQueue({
name: EMAIL_QUEUE_CONSTANTS.EMAIL_QUEUE,
}),
],
controllers: [EmailController],
providers: [
EmailService,
EmailSpamService,
MailboxResolverService,
EmailHeadersService,
EmailGateway,
EmailMonitoringService,
EmailNotificationService,
EmailMonitoringProcessor,
WebSocketAuthService,
],
exports: [
EmailService,
EmailSpamService,
MailboxResolverService,
EmailHeadersService,
EmailGateway,
EmailMonitoringService,
EmailNotificationService,
],
})
export class EmailModule {}