Вот
AppModule.
Для того чтобы использовать PaymenUseCase в контроллерах, я импортирую модуль этого useCase в AppModule.
@Module({
imports: [
PaymentHelperUseCaseModule,
],
providers: [
PaymentGateway,
],
controllers: [
IntegrationController,
],
})
export class AppModule {}
Допустим мне нужно использовать useCase не только в контроллерах а и в других модулях.
Тут есть 2 варианта:
1) Импортировать PaymentHelperUseCaseModule заново
@Module({
imports: [
BullModule.forRootAsync(BullConfig),
BullModule.registerQueueAsync({
name: queuesNamesConfig.settlement.queue,
}),
DataServicesModule,
PaymentHelperUseCaseModule,
],
providers: [SettlementQueueService, SettlementProcessor],
exports: [SettlementQueueService],
})
export class SettlementQueueModule {}
2) Добавить providers из модуля, так как он уже был импортирован в appModule(насколько я понимаю)
@Module({
imports: [
BullModule.forRootAsync(BullConfig),
BullModule.registerQueueAsync({
name: queuesNamesConfig.settlement.queue,
}),
DataServicesModule,
],
providers: [
PaymentHelperUseCase,
PaymentHelperFactory,
SettlementQueueService,
SettlementProcessor,
],
exports: [SettlementQueueService],
})
export class SettlementQueueModule {}