2023-06-01 21:54:16 -04:00
|
|
|
import { DomainModule } from '@app/domain';
|
2023-01-11 21:34:36 -05:00
|
|
|
import { InfraModule } from '@app/infra';
|
2023-09-04 22:25:31 -04:00
|
|
|
import { AssetEntity } from '@app/infra/entities';
|
2023-09-01 22:01:54 -04:00
|
|
|
import { Module, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
|
2023-06-01 21:54:16 -04:00
|
|
|
import { APP_GUARD } from '@nestjs/core';
|
|
|
|
|
import { ScheduleModule } from '@nestjs/schedule';
|
2023-07-09 00:37:40 -04:00
|
|
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
|
|
|
import { AssetRepository, IAssetRepository } from './api-v1/asset/asset-repository';
|
|
|
|
|
import { AssetController as AssetControllerV1 } from './api-v1/asset/asset.controller';
|
|
|
|
|
import { AssetService } from './api-v1/asset/asset.service';
|
2023-07-01 14:27:34 -04:00
|
|
|
import { AppGuard } from './app.guard';
|
2023-07-09 00:37:40 -04:00
|
|
|
import { FileUploadInterceptor } from './app.interceptor';
|
2023-06-01 21:54:16 -04:00
|
|
|
import { AppService } from './app.service';
|
2023-01-23 23:13:42 -05:00
|
|
|
import {
|
|
|
|
|
APIKeyController,
|
2023-11-01 04:13:34 +01:00
|
|
|
ActivityController,
|
2023-09-04 15:45:59 -04:00
|
|
|
AlbumController,
|
2023-06-01 21:54:16 -04:00
|
|
|
AppController,
|
2023-05-21 08:26:06 +02:00
|
|
|
AssetController,
|
2023-08-24 21:28:50 +02:00
|
|
|
AuditController,
|
2023-01-23 23:13:42 -05:00
|
|
|
AuthController,
|
2023-03-20 11:55:28 -04:00
|
|
|
JobController,
|
2023-09-20 13:16:33 +02:00
|
|
|
LibraryController,
|
2023-01-23 23:13:42 -05:00
|
|
|
OAuthController,
|
2023-05-15 20:30:53 +03:00
|
|
|
PartnerController,
|
2023-06-01 21:54:16 -04:00
|
|
|
PersonController,
|
2023-03-02 21:47:08 -05:00
|
|
|
SearchController,
|
2023-03-21 22:49:19 -04:00
|
|
|
ServerInfoController,
|
2023-05-15 20:30:53 +03:00
|
|
|
SharedLinkController,
|
2023-01-23 23:13:42 -05:00
|
|
|
SystemConfigController,
|
2023-05-31 21:51:28 -04:00
|
|
|
TagController,
|
2023-06-01 21:54:16 -04:00
|
|
|
UserController,
|
2023-01-23 23:13:42 -05:00
|
|
|
} from './controllers';
|
2022-02-03 10:06:44 -06:00
|
|
|
|
|
|
|
|
@Module({
|
|
|
|
|
imports: [
|
2023-05-31 21:51:28 -04:00
|
|
|
//
|
2023-03-24 08:19:48 -04:00
|
|
|
DomainModule.register({ imports: [InfraModule] }),
|
2022-05-22 06:56:36 -05:00
|
|
|
ScheduleModule.forRoot(),
|
2023-09-04 22:25:31 -04:00
|
|
|
TypeOrmModule.forFeature([AssetEntity]),
|
2022-02-03 10:06:44 -06:00
|
|
|
],
|
2023-01-11 21:34:36 -05:00
|
|
|
controllers: [
|
2023-11-01 04:13:34 +01:00
|
|
|
ActivityController,
|
2023-07-13 18:42:27 -05:00
|
|
|
AssetController,
|
2023-07-09 00:37:40 -04:00
|
|
|
AssetControllerV1,
|
2023-01-11 21:34:36 -05:00
|
|
|
AppController,
|
2023-03-26 04:46:48 +02:00
|
|
|
AlbumController,
|
2023-01-18 09:40:15 -05:00
|
|
|
APIKeyController,
|
2023-08-24 21:28:50 +02:00
|
|
|
AuditController,
|
2023-01-23 23:13:42 -05:00
|
|
|
AuthController,
|
2023-03-20 11:55:28 -04:00
|
|
|
JobController,
|
2023-09-20 13:16:33 +02:00
|
|
|
LibraryController,
|
2023-01-23 23:13:42 -05:00
|
|
|
OAuthController,
|
2023-05-15 20:30:53 +03:00
|
|
|
PartnerController,
|
2023-03-02 21:47:08 -05:00
|
|
|
SearchController,
|
2023-03-21 22:49:19 -04:00
|
|
|
ServerInfoController,
|
2023-05-15 20:30:53 +03:00
|
|
|
SharedLinkController,
|
2023-01-21 11:11:55 -05:00
|
|
|
SystemConfigController,
|
2023-05-31 21:51:28 -04:00
|
|
|
TagController,
|
2023-01-11 21:34:36 -05:00
|
|
|
UserController,
|
2023-05-17 13:07:17 -04:00
|
|
|
PersonController,
|
2023-01-11 21:34:36 -05:00
|
|
|
],
|
2023-03-24 08:19:48 -04:00
|
|
|
providers: [
|
|
|
|
|
//
|
2023-07-01 14:27:34 -04:00
|
|
|
{ provide: APP_GUARD, useExisting: AppGuard },
|
2023-07-09 00:37:40 -04:00
|
|
|
{ provide: IAssetRepository, useClass: AssetRepository },
|
2023-07-01 14:27:34 -04:00
|
|
|
AppGuard,
|
2023-06-01 21:54:16 -04:00
|
|
|
AppService,
|
2023-07-09 00:37:40 -04:00
|
|
|
AssetService,
|
|
|
|
|
FileUploadInterceptor,
|
2023-03-24 08:19:48 -04:00
|
|
|
],
|
2022-02-03 10:06:44 -06:00
|
|
|
})
|
2023-09-01 22:01:54 -04:00
|
|
|
export class AppModule implements OnModuleInit, OnModuleDestroy {
|
|
|
|
|
constructor(private appService: AppService) {}
|
|
|
|
|
|
|
|
|
|
async onModuleInit() {
|
|
|
|
|
await this.appService.init();
|
|
|
|
|
}
|
|
|
|
|
|
2023-10-13 07:22:40 +02:00
|
|
|
async onModuleDestroy() {
|
|
|
|
|
await this.appService.destroy();
|
2023-09-01 22:01:54 -04:00
|
|
|
}
|
|
|
|
|
}
|