File size: 1,952 Bytes
4acc19f
 
d201b18
4acc19f
f3abb0d
 
4acc19f
 
d201b18
4acc19f
f75a84b
2f0bbdc
2d96a3f
df84e17
d201b18
 
4acc19f
 
 
 
 
 
 
 
 
 
f3abb0d
d201b18
4acc19f
 
 
d201b18
4acc19f
f75a84b
2f0bbdc
f3abb0d
 
4acc19f
2d96a3f
4acc19f
d201b18
 
 
 
 
 
 
 
df84e17
 
 
 
4acc19f
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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 {}