app.module.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { HttpModule } from '@nestjs/axios';
  2. import { Module } from '@nestjs/common';
  3. import { ConfigModule, ConfigService } from '@nestjs/config';
  4. import { MongooseModule } from '@nestjs/mongoose';
  5. import Configuration from './config/configuration';
  6. import { VersioningModule } from './versioning/versioning.module';
  7. import { PerformanceModule } from './performance/performance.module';
  8. import { AirportModule } from './airport/airport.module';
  9. import { LoggingModule } from './logging/logging.module';
  10. import { InboundModule } from './inbound/inbound.module';
  11. import { WeatherModule } from './weather/weather.module';
  12. import { AuthController } from './auth/auth.controller';
  13. import { AuthModule } from './auth/auth.module';
  14. @Module({
  15. imports: [
  16. ConfigModule.forRoot({
  17. load: [Configuration],
  18. isGlobal: true,
  19. }),
  20. MongooseModule.forRootAsync({
  21. imports: [ConfigModule],
  22. inject: [ConfigService],
  23. useFactory: async (config: ConfigService) => ({
  24. uri: `mongodb://${config.get<string>(
  25. 'database.host',
  26. )}:${config.get<number>('database.port')}/${config.get<string>(
  27. 'database.name',
  28. )}`,
  29. }),
  30. }),
  31. HttpModule.register({
  32. timeout: 5000,
  33. maxRedirects: 3,
  34. }),
  35. VersioningModule,
  36. PerformanceModule,
  37. AirportModule,
  38. LoggingModule,
  39. InboundModule,
  40. WeatherModule,
  41. AuthModule,
  42. ],
  43. })
  44. export class AppModule {}