app.module.ts 1.4 KB

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