Files
dsc-api/src/app.module.ts
T
2026-04-12 15:30:08 +03:30

106 lines
4.4 KiB
TypeScript
Executable File

import { FastifyMulterModule } from "@nest-lab/fastify-multer";
import { HttpModule } from "@nestjs/axios";
import { BullModule } from "@nestjs/bullmq";
import { CacheModule } from "@nestjs/cache-manager";
import { MiddlewareConsumer, Module, NestModule } from "@nestjs/common";
import { ConfigModule } from "@nestjs/config";
import { ThrottlerModule } from "@nestjs/throttler";
import { TypeOrmModule } from "@nestjs/typeorm";
import { MailerModule } from "@nestjs-modules/mailer";
// import { TelegrafModule } from "nestjs-telegraf";
import { bullMqConfig } from "./configs/bullmq.config";
import { cacheConfig } from "./configs/cache.config";
import { mailerConfig } from "./configs/mailer.config";
import { rateLimitConfig } from "./configs/rateLimit.config";
// import { telegrafConfig } from "./configs/telegraf.config";
import { databaseConfigs } from "./configs/typeorm.config";
import { HTTPLogger } from "./core/middlewares/logger.middleware";
import { AccessLogsModule } from "./modules/access-logs/access-logs.module";
import { AddressModule } from "./modules/address/address.module";
import { AdsModule } from "./modules/ads/ads.module";
import { AnnouncementsModule } from "./modules/announcements/announcement.module";
import { AuthModule } from "./modules/auth/auth.module";
import { BlogsModule } from "./modules/blogs/blogs.module";
import { ContactUsModule } from "./modules/contact-us/contact-us.module";
import { CriticismModule } from "./modules/criticisms/criticisms.module";
import { DanakServicesModule } from "./modules/danak-services/danak-services.module";
import { DashboardModule } from "./modules/dashboards/dashboard.module";
import { DiscountsModule } from "./modules/discounts/discounts.module";
import { InvoicesModule } from "./modules/invoices/invoices.module";
import { DmenuModule } from "./modules/dmenu/dmenu.module";
import { LandingModule } from "./modules/landing/landing.module";
import { LearningModule } from "./modules/learnings/learning.module";
import { LoggerModule } from "./modules/logger/logger.module";
import { NotificationModule } from "./modules/notifications/notifications.module";
import { PaymentsModule } from "./modules/payments/payments.module";
import { ReferralsModule } from "./modules/referrals/referrals.module";
import { SettingModule } from "./modules/settings/settings.module";
import { SubscriptionsModule } from "./modules/subscriptions/subscriptions.module";
import { SupportPlansModule } from "./modules/support-plans/support-plans.module";
import { TicketsModule } from "./modules/tickets/tickets.module";
import { UploaderModule } from "./modules/uploader/uploader.module";
import { UsersModule } from "./modules/users/users.module";
import { WalletsModule } from "./modules/wallets/wallets.module";
import { DkalaModule } from "./modules/dkala/dkala.module";
import { DpageModule } from './modules/dpage/dpage.module';
import { DmailModule } from './modules/dmail/dmail.module';
import { ResellerModule } from './modules/reseller/reseller.module';
@Module({
imports: [
// TelegrafModule.forRootAsync(telegrafConfig()),
MailerModule.forRootAsync(mailerConfig()),
BullModule.forRootAsync(bullMqConfig()),
ThrottlerModule.forRootAsync(rateLimitConfig()),
ConfigModule.forRoot({ cache: true, isGlobal: true }),
CacheModule.registerAsync(cacheConfig()),
TypeOrmModule.forRootAsync(databaseConfigs()),
HttpModule.register({ global: true, timeout: 10000, headers: { "Content-Type": "application/json" } }),
FastifyMulterModule.register({
limits: {
fileSize: 10 * 1024 * 1024,
fieldNameSize: 200,
fieldSize: 10 * 1024 * 1024,
fields: 10,
parts: 10,
},
}),
AuthModule,
UsersModule,
TicketsModule,
DanakServicesModule,
AnnouncementsModule,
UploaderModule,
CriticismModule,
SettingModule,
ContactUsModule,
WalletsModule,
PaymentsModule,
NotificationModule,
InvoicesModule,
SubscriptionsModule,
LearningModule,
AdsModule,
AddressModule,
DashboardModule,
BlogsModule,
LoggerModule,
LandingModule,
ReferralsModule,
DiscountsModule,
SupportPlansModule,
AccessLogsModule,
DmenuModule,
DkalaModule,
DpageModule,
DmailModule,
ResellerModule
],
controllers: [],
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer.apply(HTTPLogger).forRoutes("*");
}
}