import { Module, Provider } from '@nestjs/common'; import { MESSAGE_PUBLISHER } from './messager.di-tokens'; import { MessageBrokerModule, MessageBrokerModuleOptions, MessageBrokerPublisher, } from '@mobicoop/message-broker-module'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { ADMIN_API_HEALTH_CRIT_MESSAGE_HANDLER, ADMIN_API_HEALTH_CRIT_ROUTING_KEY, ADMIN_API_HEALTH_CRIT_QUEUE, AD_CREATED_CRIT_MESSAGE_HANDLER, AD_CREATED_CRIT_ROUTING_KEY, AD_CREATED_CRIT_QUEUE, AD_CREATED_INFO_MESSAGE_HANDLER, AD_CREATED_INFO_ROUTING_KEY, AD_CREATED_INFO_QUEUE, AD_CREATED_WARNING_MESSAGE_HANDLER, AD_CREATED_WARNING_ROUTING_KEY, AD_CREATED_WARNING_QUEUE, AD_DELETED_CRIT_MESSAGE_HANDLER, AD_DELETED_CRIT_ROUTING_KEY, AD_DELETED_CRIT_QUEUE, AD_DELETED_INFO_MESSAGE_HANDLER, AD_DELETED_INFO_ROUTING_KEY, AD_DELETED_INFO_QUEUE, AD_HEALTH_CRIT_MESSAGE_HANDLER, AD_HEALTH_CRIT_ROUTING_KEY, AD_HEALTH_CRIT_QUEUE, AD_READ_WARNING_MESSAGE_HANDLER, AD_READ_WARNING_ROUTING_KEY, AD_READ_WARNING_QUEUE, AD_UPDATED_CRIT_MESSAGE_HANDLER, AD_UPDATED_CRIT_ROUTING_KEY, AD_UPDATED_CRIT_QUEUE, AD_UPDATED_INFO_MESSAGE_HANDLER, AD_UPDATED_INFO_ROUTING_KEY, AD_UPDATED_INFO_QUEUE, AUTH_CREATED_CRIT_MESSAGE_HANDLER, AUTH_CREATED_CRIT_ROUTING_KEY, AUTH_CREATED_CRIT_QUEUE, AUTH_DELETED_CRIT_MESSAGE_HANDLER, AUTH_DELETED_CRIT_ROUTING_KEY, AUTH_DELETED_CRIT_QUEUE, AUTH_HEALTH_CRIT_MESSAGE_HANDLER, AUTH_HEALTH_CRIT_ROUTING_KEY, AUTH_HEALTH_CRIT_QUEUE, AUTH_PASSWORD_UPDATED_WARNING_MESSAGE_HANDLER, AUTH_PASSWORD_UPDATED_WARNING_ROUTING_KEY, AUTH_PASSWORD_UPDATED_WARNING_QUEUE, AUTH_READ_WARNING_MESSAGE_HANDLER, AUTH_READ_WARNING_ROUTING_KEY, AUTH_READ_WARNING_QUEUE, AUTH_USERNAME_CREATED_WARNING_MESSAGE_HANDLER, AUTH_USERNAME_CREATED_WARNING_ROUTING_KEY, AUTH_USERNAME_CREATED_WARNING_QUEUE, AUTH_USERNAME_DELETED_WARNING_MESSAGE_HANDLER, AUTH_USERNAME_DELETED_WARNING_ROUTING_KEY, AUTH_USERNAME_DELETED_WARNING_QUEUE, AUTH_USERNAME_READ_WARNING_MESSAGE_HANDLER, AUTH_USERNAME_READ_WARNING_ROUTING_KEY, AUTH_USERNAME_READ_WARNING_QUEUE, AUTH_USERNAME_UPDATED_WARNING_MESSAGE_HANDLER, AUTH_USERNAME_UPDATED_WARNING_ROUTING_KEY, AUTH_USERNAME_UPDATED_WARNING_QUEUE, CONFIGURATION_HEALTH_CRIT_MESSAGE_HANDLER, CONFIGURATION_HEALTH_CRIT_ROUTING_KEY, CONFIGURATION_HEALTH_CRIT_QUEUE, GATEWAY_API_HEALTH_CRIT_MESSAGE_HANDLER, GATEWAY_API_HEALTH_CRIT_ROUTING_KEY, GATEWAY_API_HEALTH_CRIT_QUEUE, LOGGER_HEALTH_CRIT_MESSAGE_HANDLER, LOGGER_HEALTH_CRIT_ROUTING_KEY, LOGGER_HEALTH_CRIT_QUEUE, MATCHER_AD_CRIT_MESSAGE_HANDLER, MATCHER_AD_CRIT_ROUTING_KEY, MATCHER_AD_CRIT_QUEUE, MATCHER_MATCH_CRIT_MESSAGE_HANDLER, MATCHER_MATCH_CRIT_ROUTING_KEY, MATCHER_MATCH_CRIT_QUEUE, SERVICE_NAME, TERRITORY_CREATED_CRIT_MESSAGE_HANDLER, TERRITORY_CREATED_CRIT_ROUTING_KEY, TERRITORY_CREATED_CRIT_QUEUE, TERRITORY_CREATED_INFO_MESSAGE_HANDLER, TERRITORY_CREATED_INFO_ROUTING_KEY, TERRITORY_CREATED_INFO_QUEUE, TERRITORY_CREATED_WARNING_MESSAGE_HANDLER, TERRITORY_CREATED_WARNING_ROUTING_KEY, TERRITORY_CREATED_WARNING_QUEUE, TERRITORY_DELETED_CRIT_MESSAGE_HANDLER, TERRITORY_DELETED_CRIT_ROUTING_KEY, TERRITORY_DELETED_CRIT_QUEUE, TERRITORY_DELETED_INFO_MESSAGE_HANDLER, TERRITORY_DELETED_INFO_ROUTING_KEY, TERRITORY_DELETED_INFO_QUEUE, TERRITORY_HEALTH_CRIT_MESSAGE_HANDLER, TERRITORY_HEALTH_CRIT_ROUTING_KEY, TERRITORY_HEALTH_CRIT_QUEUE, TERRITORY_READ_WARNING_MESSAGE_HANDLER, TERRITORY_READ_WARNING_ROUTING_KEY, TERRITORY_READ_WARNING_QUEUE, TERRITORY_UPDATED_CRIT_MESSAGE_HANDLER, TERRITORY_UPDATED_CRIT_ROUTING_KEY, TERRITORY_UPDATED_CRIT_QUEUE, TERRITORY_UPDATED_INFO_MESSAGE_HANDLER, TERRITORY_UPDATED_INFO_ROUTING_KEY, TERRITORY_UPDATED_INFO_QUEUE, USER_CREATED_CRIT_MESSAGE_HANDLER, USER_CREATED_CRIT_ROUTING_KEY, USER_CREATED_CRIT_QUEUE, USER_CREATED_INFO_MESSAGE_HANDLER, USER_CREATED_INFO_ROUTING_KEY, USER_CREATED_INFO_QUEUE, USER_CREATED_WARNING_MESSAGE_HANDLER, USER_CREATED_WARNING_ROUTING_KEY, USER_CREATED_WARNING_QUEUE, USER_DELETED_CRIT_MESSAGE_HANDLER, USER_DELETED_CRIT_ROUTING_KEY, USER_DELETED_CRIT_QUEUE, USER_DELETED_INFO_MESSAGE_HANDLER, USER_DELETED_INFO_ROUTING_KEY, USER_DELETED_INFO_QUEUE, USER_HEALTH_CRIT_MESSAGE_HANDLER, USER_HEALTH_CRIT_ROUTING_KEY, USER_HEALTH_CRIT_QUEUE, USER_READ_WARNING_MESSAGE_HANDLER, USER_READ_WARNING_ROUTING_KEY, USER_READ_WARNING_QUEUE, USER_UPDATED_CRIT_MESSAGE_HANDLER, USER_UPDATED_CRIT_ROUTING_KEY, USER_UPDATED_CRIT_QUEUE, USER_UPDATED_INFO_MESSAGE_HANDLER, USER_UPDATED_INFO_ROUTING_KEY, USER_UPDATED_INFO_QUEUE, } from '@src/app.constants'; const imports = [ MessageBrokerModule.forRootAsync({ imports: [ConfigModule], inject: [ConfigService], useFactory: async ( configService: ConfigService, ): Promise => ({ uri: configService.get('MESSAGE_BROKER_URI') as string, exchange: { name: configService.get('MESSAGE_BROKER_EXCHANGE') as string, durable: configService.get( 'MESSAGE_BROKER_EXCHANGE_DURABILITY', ) as boolean, }, name: SERVICE_NAME, handlers: { [GATEWAY_API_HEALTH_CRIT_MESSAGE_HANDLER]: { routingKey: GATEWAY_API_HEALTH_CRIT_ROUTING_KEY, queue: GATEWAY_API_HEALTH_CRIT_QUEUE, }, [ADMIN_API_HEALTH_CRIT_MESSAGE_HANDLER]: { routingKey: ADMIN_API_HEALTH_CRIT_ROUTING_KEY, queue: ADMIN_API_HEALTH_CRIT_QUEUE, }, [AD_CREATED_INFO_MESSAGE_HANDLER]: { routingKey: AD_CREATED_INFO_ROUTING_KEY, queue: AD_CREATED_INFO_QUEUE, }, [AD_CREATED_WARNING_MESSAGE_HANDLER]: { routingKey: AD_CREATED_WARNING_ROUTING_KEY, queue: AD_CREATED_WARNING_QUEUE, }, [AD_CREATED_CRIT_MESSAGE_HANDLER]: { routingKey: AD_CREATED_CRIT_ROUTING_KEY, queue: AD_CREATED_CRIT_QUEUE, }, [AD_DELETED_INFO_MESSAGE_HANDLER]: { routingKey: AD_DELETED_INFO_ROUTING_KEY, queue: AD_DELETED_INFO_QUEUE, }, [AD_DELETED_CRIT_MESSAGE_HANDLER]: { routingKey: AD_DELETED_CRIT_ROUTING_KEY, queue: AD_DELETED_CRIT_QUEUE, }, [AD_READ_WARNING_MESSAGE_HANDLER]: { routingKey: AD_READ_WARNING_ROUTING_KEY, queue: AD_READ_WARNING_QUEUE, }, [AD_UPDATED_INFO_MESSAGE_HANDLER]: { routingKey: AD_UPDATED_INFO_ROUTING_KEY, queue: AD_UPDATED_INFO_QUEUE, }, [AD_UPDATED_CRIT_MESSAGE_HANDLER]: { routingKey: AD_UPDATED_CRIT_ROUTING_KEY, queue: AD_UPDATED_CRIT_QUEUE, }, [AD_HEALTH_CRIT_MESSAGE_HANDLER]: { routingKey: AD_HEALTH_CRIT_ROUTING_KEY, queue: AD_HEALTH_CRIT_QUEUE, }, [AUTH_CREATED_CRIT_MESSAGE_HANDLER]: { routingKey: AUTH_CREATED_CRIT_ROUTING_KEY, queue: AUTH_CREATED_CRIT_QUEUE, }, [AUTH_DELETED_CRIT_MESSAGE_HANDLER]: { routingKey: AUTH_DELETED_CRIT_ROUTING_KEY, queue: AUTH_DELETED_CRIT_QUEUE, }, [AUTH_READ_WARNING_MESSAGE_HANDLER]: { routingKey: AUTH_READ_WARNING_ROUTING_KEY, queue: AUTH_READ_WARNING_QUEUE, }, [AUTH_USERNAME_CREATED_WARNING_MESSAGE_HANDLER]: { routingKey: AUTH_USERNAME_CREATED_WARNING_ROUTING_KEY, queue: AUTH_USERNAME_CREATED_WARNING_QUEUE, }, [AUTH_USERNAME_DELETED_WARNING_MESSAGE_HANDLER]: { routingKey: AUTH_USERNAME_DELETED_WARNING_ROUTING_KEY, queue: AUTH_USERNAME_DELETED_WARNING_QUEUE, }, [AUTH_USERNAME_READ_WARNING_MESSAGE_HANDLER]: { routingKey: AUTH_USERNAME_READ_WARNING_ROUTING_KEY, queue: AUTH_USERNAME_READ_WARNING_QUEUE, }, [AUTH_PASSWORD_UPDATED_WARNING_MESSAGE_HANDLER]: { routingKey: AUTH_PASSWORD_UPDATED_WARNING_ROUTING_KEY, queue: AUTH_PASSWORD_UPDATED_WARNING_QUEUE, }, [AUTH_USERNAME_UPDATED_WARNING_MESSAGE_HANDLER]: { routingKey: AUTH_USERNAME_UPDATED_WARNING_ROUTING_KEY, queue: AUTH_USERNAME_UPDATED_WARNING_QUEUE, }, [AUTH_HEALTH_CRIT_MESSAGE_HANDLER]: { routingKey: AUTH_HEALTH_CRIT_ROUTING_KEY, queue: AUTH_HEALTH_CRIT_QUEUE, }, [CONFIGURATION_HEALTH_CRIT_MESSAGE_HANDLER]: { routingKey: CONFIGURATION_HEALTH_CRIT_ROUTING_KEY, queue: CONFIGURATION_HEALTH_CRIT_QUEUE, }, [LOGGER_HEALTH_CRIT_MESSAGE_HANDLER]: { routingKey: LOGGER_HEALTH_CRIT_ROUTING_KEY, queue: LOGGER_HEALTH_CRIT_QUEUE, }, [MATCHER_AD_CRIT_MESSAGE_HANDLER]: { routingKey: MATCHER_AD_CRIT_ROUTING_KEY, queue: MATCHER_AD_CRIT_QUEUE, }, [MATCHER_MATCH_CRIT_MESSAGE_HANDLER]: { routingKey: MATCHER_MATCH_CRIT_ROUTING_KEY, queue: MATCHER_MATCH_CRIT_QUEUE, }, [TERRITORY_CREATED_INFO_MESSAGE_HANDLER]: { routingKey: TERRITORY_CREATED_INFO_ROUTING_KEY, queue: TERRITORY_CREATED_INFO_QUEUE, }, [TERRITORY_CREATED_WARNING_MESSAGE_HANDLER]: { routingKey: TERRITORY_CREATED_WARNING_ROUTING_KEY, queue: TERRITORY_CREATED_WARNING_QUEUE, }, [TERRITORY_CREATED_CRIT_MESSAGE_HANDLER]: { routingKey: TERRITORY_CREATED_CRIT_ROUTING_KEY, queue: TERRITORY_CREATED_CRIT_QUEUE, }, [TERRITORY_DELETED_INFO_MESSAGE_HANDLER]: { routingKey: TERRITORY_DELETED_INFO_ROUTING_KEY, queue: TERRITORY_DELETED_INFO_QUEUE, }, [TERRITORY_DELETED_CRIT_MESSAGE_HANDLER]: { routingKey: TERRITORY_DELETED_CRIT_ROUTING_KEY, queue: TERRITORY_DELETED_CRIT_QUEUE, }, [TERRITORY_READ_WARNING_MESSAGE_HANDLER]: { routingKey: TERRITORY_READ_WARNING_ROUTING_KEY, queue: TERRITORY_READ_WARNING_QUEUE, }, [TERRITORY_UPDATED_INFO_MESSAGE_HANDLER]: { routingKey: TERRITORY_UPDATED_INFO_ROUTING_KEY, queue: TERRITORY_UPDATED_INFO_QUEUE, }, [TERRITORY_UPDATED_CRIT_MESSAGE_HANDLER]: { routingKey: TERRITORY_UPDATED_CRIT_ROUTING_KEY, queue: TERRITORY_UPDATED_CRIT_QUEUE, }, [TERRITORY_HEALTH_CRIT_MESSAGE_HANDLER]: { routingKey: TERRITORY_HEALTH_CRIT_ROUTING_KEY, queue: TERRITORY_HEALTH_CRIT_QUEUE, }, [USER_CREATED_INFO_MESSAGE_HANDLER]: { routingKey: USER_CREATED_INFO_ROUTING_KEY, queue: USER_CREATED_INFO_QUEUE, }, [USER_CREATED_WARNING_MESSAGE_HANDLER]: { routingKey: USER_CREATED_WARNING_ROUTING_KEY, queue: USER_CREATED_WARNING_QUEUE, }, [USER_CREATED_CRIT_MESSAGE_HANDLER]: { routingKey: USER_CREATED_CRIT_ROUTING_KEY, queue: USER_CREATED_CRIT_QUEUE, }, [USER_DELETED_INFO_MESSAGE_HANDLER]: { routingKey: USER_DELETED_INFO_ROUTING_KEY, queue: USER_DELETED_INFO_QUEUE, }, [USER_DELETED_CRIT_MESSAGE_HANDLER]: { routingKey: USER_DELETED_CRIT_ROUTING_KEY, queue: USER_DELETED_CRIT_QUEUE, }, [USER_READ_WARNING_MESSAGE_HANDLER]: { routingKey: USER_READ_WARNING_ROUTING_KEY, queue: USER_READ_WARNING_QUEUE, }, [USER_UPDATED_INFO_MESSAGE_HANDLER]: { routingKey: USER_UPDATED_INFO_ROUTING_KEY, queue: USER_UPDATED_INFO_QUEUE, }, [USER_UPDATED_CRIT_MESSAGE_HANDLER]: { routingKey: USER_UPDATED_CRIT_ROUTING_KEY, queue: USER_UPDATED_CRIT_QUEUE, }, [USER_HEALTH_CRIT_MESSAGE_HANDLER]: { routingKey: USER_HEALTH_CRIT_ROUTING_KEY, queue: USER_HEALTH_CRIT_QUEUE, }, }, }), }), ]; const providers: Provider[] = [ { provide: MESSAGE_PUBLISHER, useClass: MessageBrokerPublisher, }, ]; @Module({ imports, providers, exports: [MESSAGE_PUBLISHER], }) export class MessagerModule {}