logger/src/modules/messager/messager.module.ts

341 lines
12 KiB
TypeScript

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<MessageBrokerModuleOptions> => ({
uri: configService.get<string>('MESSAGE_BROKER_URI') as string,
exchange: {
name: configService.get<string>('MESSAGE_BROKER_EXCHANGE') as string,
durable: configService.get<boolean>(
'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 {}