43 lines
1.4 KiB
TypeScript
43 lines
1.4 KiB
TypeScript
import { Module, Provider } from '@nestjs/common';
|
|
import { HealthHttpController } from './interface/http-controllers/health.http.controller';
|
|
import { TerminusModule } from '@nestjs/terminus';
|
|
import { MESSAGE_BROKER_PUBLISHER, MESSAGE_PUBLISHER } from 'src/app.constants';
|
|
import { MessageBrokerPublisher } from '@mobicoop/message-broker-module';
|
|
import { MessagePublisher } from './infrastructure/message-publisher';
|
|
import { RepositoriesHealthIndicatorUseCase } from './core/aplication/usecases/repositories.health-indicator.usecase';
|
|
import { AdRepository } from '../ad/infrastructure/ad.repository';
|
|
import { AD_REPOSITORY } from './health.di-tokens';
|
|
import { HealthGrpcController } from './interface/grpc-controllers/health.grpc.controller';
|
|
import { AdModule } from '@modules/ad/ad.module';
|
|
|
|
const grpcControllers = [HealthGrpcController];
|
|
|
|
const httpControllers = [HealthHttpController];
|
|
|
|
const useCases: Provider[] = [RepositoriesHealthIndicatorUseCase];
|
|
|
|
const repositories: Provider[] = [
|
|
{
|
|
provide: AD_REPOSITORY,
|
|
useClass: AdRepository,
|
|
},
|
|
];
|
|
|
|
const messageBrokers: Provider[] = [
|
|
{
|
|
provide: MESSAGE_BROKER_PUBLISHER,
|
|
useClass: MessageBrokerPublisher,
|
|
},
|
|
{
|
|
provide: MESSAGE_PUBLISHER,
|
|
useClass: MessagePublisher,
|
|
},
|
|
];
|
|
|
|
@Module({
|
|
imports: [TerminusModule, AdModule],
|
|
controllers: [...grpcControllers, ...httpControllers],
|
|
providers: [...useCases, ...repositories, ...messageBrokers],
|
|
})
|
|
export class HealthModule {}
|