2023-03-24 00:55:15 -04:00
|
|
|
import { immichAppConfig } from '@app/domain';
|
2023-03-02 21:47:08 -05:00
|
|
|
import { Module, OnModuleInit } from '@nestjs/common';
|
2022-02-03 10:06:44 -06:00
|
|
|
import { AssetModule } from './api-v1/asset/asset.module';
|
2022-06-25 19:53:06 +02:00
|
|
|
import { ConfigModule } from '@nestjs/config';
|
2022-06-18 17:56:36 +02:00
|
|
|
import { AlbumModule } from './api-v1/album/album.module';
|
2022-05-21 02:23:55 -05:00
|
|
|
import { AppController } from './app.controller';
|
2022-05-22 06:56:36 -05:00
|
|
|
import { ScheduleModule } from '@nestjs/schedule';
|
|
|
|
|
import { ScheduleTasksModule } from './modules/schedule-tasks/schedule-tasks.module';
|
2022-12-05 11:56:44 -06:00
|
|
|
import { TagModule } from './api-v1/tag/tag.module';
|
2023-03-02 21:47:08 -05:00
|
|
|
import { DomainModule, SearchService } from '@app/domain';
|
2023-01-11 21:34:36 -05:00
|
|
|
import { InfraModule } from '@app/infra';
|
2023-01-23 23:13:42 -05:00
|
|
|
import {
|
|
|
|
|
APIKeyController,
|
|
|
|
|
AuthController,
|
2023-02-01 15:55:06 -05:00
|
|
|
DeviceInfoController,
|
2023-03-20 11:55:28 -04:00
|
|
|
JobController,
|
2023-01-23 23:13:42 -05:00
|
|
|
OAuthController,
|
2023-03-02 21:47:08 -05:00
|
|
|
SearchController,
|
2023-03-21 22:49:19 -04:00
|
|
|
ServerInfoController,
|
2023-01-25 11:35:28 -05:00
|
|
|
ShareController,
|
2023-01-23 23:13:42 -05:00
|
|
|
SystemConfigController,
|
|
|
|
|
UserController,
|
|
|
|
|
} from './controllers';
|
2023-01-31 13:11:49 -05:00
|
|
|
import { APP_GUARD } from '@nestjs/core';
|
|
|
|
|
import { AuthGuard } from './middlewares/auth.guard';
|
2022-02-03 10:06:44 -06:00
|
|
|
|
|
|
|
|
@Module({
|
|
|
|
|
imports: [
|
|
|
|
|
ConfigModule.forRoot(immichAppConfig),
|
2022-05-22 06:56:36 -05:00
|
|
|
|
2023-01-11 21:34:36 -05:00
|
|
|
DomainModule.register({
|
|
|
|
|
imports: [InfraModule],
|
|
|
|
|
}),
|
2022-05-22 06:56:36 -05:00
|
|
|
|
2022-02-03 10:06:44 -06:00
|
|
|
AssetModule,
|
2022-05-22 06:56:36 -05:00
|
|
|
|
2022-06-18 17:56:36 +02:00
|
|
|
AlbumModule,
|
2022-05-22 06:56:36 -05:00
|
|
|
|
|
|
|
|
ScheduleModule.forRoot(),
|
|
|
|
|
|
2022-06-11 16:12:06 -05:00
|
|
|
ScheduleTasksModule,
|
2022-10-06 11:25:54 -05:00
|
|
|
|
2022-12-05 11:56:44 -06:00
|
|
|
TagModule,
|
2022-02-03 10:06:44 -06:00
|
|
|
],
|
2023-01-11 21:34:36 -05:00
|
|
|
controllers: [
|
|
|
|
|
AppController,
|
2023-01-18 09:40:15 -05:00
|
|
|
APIKeyController,
|
2023-01-23 23:13:42 -05:00
|
|
|
AuthController,
|
2023-02-01 15:55:06 -05:00
|
|
|
DeviceInfoController,
|
2023-03-20 11:55:28 -04:00
|
|
|
JobController,
|
2023-01-23 23:13:42 -05:00
|
|
|
OAuthController,
|
2023-03-02 21:47:08 -05:00
|
|
|
SearchController,
|
2023-03-21 22:49:19 -04:00
|
|
|
ServerInfoController,
|
2023-01-25 11:35:28 -05:00
|
|
|
ShareController,
|
2023-01-21 11:11:55 -05:00
|
|
|
SystemConfigController,
|
2023-01-11 21:34:36 -05:00
|
|
|
UserController,
|
|
|
|
|
],
|
2023-01-31 13:11:49 -05:00
|
|
|
providers: [{ provide: APP_GUARD, useExisting: AuthGuard }, AuthGuard],
|
2022-02-03 10:06:44 -06:00
|
|
|
})
|
2023-03-02 21:47:08 -05:00
|
|
|
export class AppModule implements OnModuleInit {
|
|
|
|
|
constructor(private searchService: SearchService) {}
|
|
|
|
|
async onModuleInit() {
|
|
|
|
|
await this.searchService.bootstrap();
|
|
|
|
|
}
|
|
|
|
|
}
|