Skip to content

Commit

Permalink
feat(server): define all the required providers to the ApiModule an…
Browse files Browse the repository at this point in the history
…d `MicroserviceModule`
  • Loading branch information
hitech95 committed Apr 2, 2024
1 parent 23ed1f2 commit 9403033
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion server/src/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,15 @@ import { ImmichLogger } from 'src/utils/logger';
import { GatewayService } from 'src/services/websocket.service';
import { CoreModule } from './modules/core/core.module';

// New imports for SMTP POC
import { SystemConfigService } from './modules/core/services/system-config.service';
import { MailerModule } from '@nestjs-modules/mailer';
import { IMailRepository } from 'src/interfaces/mail.interface';
import { MailRepository } from 'src/repositories/mail.repository';
import { smtpSettingsFactory } from 'src/smtp.config';
import { INotificationRepository } from './interfaces/notification.interface';
import { NotificationRepository } from './repositories/notification.repository';
import { NotificationService } from './services/notification.service';

const commands = [
ResetAdminPasswordCommand,
Expand Down Expand Up @@ -184,7 +193,9 @@ const services: Provider[] = [
TagService,
TrashService,
UserService,
GatewayService
// SMTP
GatewayService,
NotificationService,
];

const repositories: Provider[] = [
Expand Down Expand Up @@ -214,6 +225,9 @@ const repositories: Provider[] = [
{ provide: IMediaRepository, useClass: MediaRepository },
{ provide: IUserRepository, useClass: UserRepository },
{ provide: IUserTokenRepository, useClass: UserTokenRepository },
// SMTP
{ provide: IMailRepository, useClass: MailRepository },
{ provide: INotificationRepository, useClass: NotificationRepository },
];

const middleware = [
Expand All @@ -232,6 +246,8 @@ const imports = [
TypeOrmModule.forRoot(databaseConfig),
TypeOrmModule.forFeature(databaseEntities),
CoreModule,
// SMTP
MailerModule.forRootAsync({ inject: [SystemConfigService], useFactory: smtpSettingsFactory }),
];

@Module({
Expand Down

0 comments on commit 9403033

Please sign in to comment.