streamflix-api / src /app.module.ts
Akshar2325
feat(short-url): implement Shlink URL shortener integration with CRUD operations
2f0bbdc
Raw
History Blame
1.95 kB
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { APP_GUARD, APP_INTERCEPTOR, APP_FILTER } from '@nestjs/core';
import { ThrottlerModule, ThrottlerGuard } from '@nestjs/throttler';
import { UserModule } from './modules/user/user.module';
import { SuperAdminModule } from './modules/super-admin/super-admin.module';
import { PrismaService } from './shared/modules/prisma/prisma.service';
import { CommonModule } from './shared/modules/common/common.module';
import { DiscordLoggerModule } from './shared/modules/discord-logger/discord-logger.module';
import { BaseQueryCoreModule } from './core/base-query-core/base-query-core.module';
import { UploadModule } from './shared/modules/upload/upload.module';
import { ShortUrlModule } from './shared/modules/short-url/short-url.module';
import { AppController } from './app.controller';
import { ApiTokenGuard } from './shared/guards/api-token.guard';
import { DiscordLoggerInterceptor } from './shared/modules/discord-logger/discord-logger.interceptor';
import { DiscordExceptionFilter } from './shared/modules/discord-logger/discord-logger.filter';
@Module({
imports: [
ConfigModule.forRoot({
envFilePath: '.env',
isGlobal: true,
cache: true,
}),
ThrottlerModule.forRoot([
{
limit: 1000,
ttl: 60000,
},
]),
CommonModule,
DiscordLoggerModule,
BaseQueryCoreModule,
UploadModule,
ShortUrlModule,
UserModule,
SuperAdminModule,
],
controllers: [AppController],
providers: [
{
provide: APP_FILTER,
useClass: DiscordExceptionFilter,
},
{
provide: APP_INTERCEPTOR,
useClass: DiscordLoggerInterceptor,
},
{
provide: APP_GUARD,
useClass: ApiTokenGuard,
},
{
provide: APP_GUARD,
useClass: ThrottlerGuard,
},
PrismaService,
],
exports: [PrismaService],
})
export class AppModule {}