Skip to content

Commit 9db6283

Browse files
committed
Log publish and receive message
1 parent b2301d9 commit 9db6283

File tree

9 files changed

+24
-20
lines changed

9 files changed

+24
-20
lines changed

src/Contexts/Shared/infrastructure/EventBus/DomainEventMapping.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import { DomainEventClass, DomainEvent } from '../../domain/DomainEvent';
22
import { DomainEventSubscriber } from '../../domain/DomainEventSubscriber';
3-
import Logger from '../../domain/Logger';
43

54
type Mapping = Map<string, DomainEventClass>;
65

76
export class DomainEventMapping {
87
private mapping: Mapping;
98

10-
constructor(mapping: DomainEventSubscriber<DomainEvent>[], private logger: Logger) {
9+
constructor(mapping: DomainEventSubscriber<DomainEvent>[]) {
1110
this.mapping = mapping.reduce(this.eventsExtractor(), new Map<string, DomainEventClass>());
1211
}
1312

@@ -29,7 +28,6 @@ export class DomainEventMapping {
2928
const domainEvent = this.mapping.get(name);
3029

3130
if (!domainEvent) {
32-
this.logger.info(`The Domain Event Class for ${name} doesn't exist or have no subscrribers`);
3331
return;
3432
}
3533

src/Contexts/Shared/infrastructure/EventBus/RabbitMq/RabbitMqEventBus.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,18 @@ import { DomainEventSubscriber } from '../../../domain/DomainEventSubscriber';
55
import { DomainEventJsonDeserializer } from '../DomainEventJsonDeserializer';
66
import { DomainEventMapping } from '../DomainEventMapping';
77
import RabbitMqConfig from './RabbitMqConfig';
8+
import Logger from '../../../domain/Logger';
89

910
export default class RabbitMqEventbus implements EventBus {
1011
private connection: Connection;
1112
private exchange: Exchange;
1213
private queue: Queue;
14+
private logger: Logger;
1315
private deserializer?: DomainEventJsonDeserializer;
1416
private subscribers: Map<string, Array<DomainEventSubscriber<DomainEvent>>>;
1517

16-
constructor(config: RabbitMqConfig) {
18+
constructor(config: RabbitMqConfig, logger: Logger) {
19+
this.logger = logger;
1720
this.connection = new Connection(`amqp://${config.user}:${config.password}@${config.host}`);
1821
this.exchange = this.connection.declareExchange(config.exchange, 'fanout', { durable: false });
1922
this.queue = this.connection.declareQueue(config.queue);
@@ -31,10 +34,14 @@ export default class RabbitMqEventbus implements EventBus {
3134
const event = this.deserializer!.deserialize(message.content.toString());
3235
if (event) {
3336
const subscribers = this.subscribers.get(event.eventName);
34-
const subscribersExecutions = subscribers!.map(subscriber => subscriber.on(event));
35-
await Promise.all(subscribersExecutions);
36-
message.ack();
37+
if (subscribers && subscribers.length) {
38+
const subscribersNames = subscribers.map(subscriber => subscriber.constructor.name);
39+
this.logger.info(`[RabbitMqEventBus] Message processed: ${event.eventName} by ${subscribersNames}`);
40+
const subscribersExecutions = subscribers.map(subscriber => subscriber.on(event));
41+
await Promise.all(subscribersExecutions);
42+
}
3743
}
44+
message.ack();
3845
},
3946
{ noAck: false }
4047
);
@@ -52,6 +59,7 @@ export default class RabbitMqEventbus implements EventBus {
5259
},
5360
meta: {}
5461
});
62+
this.logger.info(`[RabbitMqEventBus] Event to be published: ${event.eventName}`);
5563
executions.push(this.exchange.send(message));
5664
});
5765

src/apps/backoffice/backend/dependency-injection/Shared/application.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ services:
1919

2020
Shared.EventBus:
2121
class: ../../../../../Contexts/Shared/infrastructure/EventBus/RabbitMq/RabbitMqEventBus
22-
arguments: ['@Backoffice.courses.RabbitMqConfig']
22+
arguments: ['@Backoffice.courses.RabbitMqConfig', '@Shared.Logger']
2323

2424
Shared.EventBus.DomainEventMapping:
2525
class: ../../../../../Contexts/Shared/infrastructure/EventBus/DomainEventMapping

src/apps/backoffice/backend/subscribers.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,14 @@ import { DomainEventSubscriber } from '../../../Contexts/Shared/domain/DomainEve
44
import { DomainEvent } from '../../../Contexts/Shared/domain/DomainEvent';
55
import { EventBus } from '../../../Contexts/Shared/domain/EventBus';
66
import { DomainEventMapping } from '../../../Contexts/Shared/infrastructure/EventBus/DomainEventMapping';
7-
import Logger from '../../../Contexts/Shared/domain/Logger';
87

98
export async function registerSubscribers() {
109
const eventBus = container.get('Shared.EventBus') as EventBus;
11-
const logger = container.get('Shared.Logger') as Logger;
1210
const subscriberDefinitions = container.findTaggedServiceIds('domainEventSubscriber') as Map<String, Definition>;
1311
const subscribers: Array<DomainEventSubscriber<DomainEvent>> = [];
1412

1513
subscriberDefinitions.forEach((value: any, key: any) => subscribers.push(container.get(key)));
16-
const domainEventMapping = new DomainEventMapping(subscribers, logger);
14+
const domainEventMapping = new DomainEventMapping(subscribers);
1715
eventBus.setDomainEventMapping(domainEventMapping);
1816
eventBus.addSubscribers(subscribers);
1917
await eventBus.start();

src/apps/backoffice/frontend/dependency-injection/Shared/application.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ services:
1616

1717
Shared.EventBus:
1818
class: ../../../../../Contexts/Shared/infrastructure/EventBus/RabbitMq/RabbitMqEventBus
19-
arguments: ['@Backoffice.courses.RabbitMqConfig']
19+
arguments: ['@Backoffice.courses.RabbitMqConfig', '@Shared.Logger']
2020

2121
Shared.QueryBus:
2222
class: ../../../../../Contexts/Shared/infrastructure/QueryBus/InMemoryQueryBus

src/apps/backoffice/frontend/subscribers.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,14 @@ import { DomainEventSubscriber } from '../../../Contexts/Shared/domain/DomainEve
44
import { DomainEvent } from '../../../Contexts/Shared/domain/DomainEvent';
55
import { EventBus } from '../../../Contexts/Shared/domain/EventBus';
66
import { DomainEventMapping } from '../../../Contexts/Shared/infrastructure/EventBus/DomainEventMapping';
7-
import Logger from '../../../Contexts/Shared/domain/Logger';
87

98
export async function registerSubscribers() {
109
const eventBus = container.get('Shared.EventBus') as EventBus;
11-
const logger = container.get('Shared.Logger') as Logger;
1210
const subscriberDefinitions = container.findTaggedServiceIds('domainEventSubscriber') as Map<String, Definition>;
1311
const subscribers: Array<DomainEventSubscriber<DomainEvent>> = [];
1412

1513
subscriberDefinitions.forEach((value: any, key: any) => subscribers.push(container.get(key)));
16-
const domainEventMapping = new DomainEventMapping(subscribers, logger);
14+
const domainEventMapping = new DomainEventMapping(subscribers);
1715
eventBus.setDomainEventMapping(domainEventMapping);
1816
eventBus.addSubscribers(subscribers);
1917
await eventBus.start();

src/apps/mooc/backend/dependency-injection/Shared/application.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ services:
2121

2222
Shared.EventBus:
2323
class: ../../../../../Contexts/Shared/infrastructure/EventBus/RabbitMq/RabbitMqEventBus
24-
arguments: ['@Shared.RabbitMqConfig']
24+
arguments: ['@Shared.RabbitMqConfig', '@Shared.Logger']
2525

2626
Shared.CommandHandlersInformation:
2727
class: ../../../../../Contexts/Shared/infrastructure/CommandBus/CommandHandlersInformation

src/apps/mooc/backend/subscribers.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,14 @@ import { DomainEventSubscriber } from '../../../Contexts/Shared/domain/DomainEve
44
import { DomainEvent } from '../../../Contexts/Shared/domain/DomainEvent';
55
import { EventBus } from '../../../Contexts/Shared/domain/EventBus';
66
import { DomainEventMapping } from '../../../Contexts/Shared/infrastructure/EventBus/DomainEventMapping';
7-
import Logger from '../../../Contexts/Shared/domain/Logger';
87

98
export async function registerSubscribers() {
109
const eventBus = container.get('Shared.EventBus') as EventBus;
11-
const logger = container.get('Shared.Logger') as Logger;
1210
const subscriberDefinitions = container.findTaggedServiceIds('domainEventSubscriber') as Map<String, Definition>;
1311
const subscribers: Array<DomainEventSubscriber<DomainEvent>> = [];
1412

1513
subscriberDefinitions.forEach((value: any, key: any) => subscribers.push(container.get(key)));
16-
const domainEventMapping = new DomainEventMapping(subscribers, logger);
14+
const domainEventMapping = new DomainEventMapping(subscribers);
1715
eventBus.setDomainEventMapping(domainEventMapping);
1816
eventBus.addSubscribers(subscribers);
1917
await eventBus.start();

src/apps/retention/dependency-injection/Campaign/application.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,8 @@ services:
2020

2121
Retention.campaign.EventBus:
2222
class: ../../../../../Contexts/Shared/infrastructure/EventBus/RabbitMq/RabbitMqEventBus
23-
arguments: ['@Retention.campaign.RabbitMqConfig']
23+
arguments: ['@Retention.campaign.RabbitMqConfig', '@Retention.campaign.Logger']
24+
25+
Retention.campaign.Logger:
26+
class: ../../../../../Contexts/Shared/infrastructure/WinstonLogger
27+
arguments: []

0 commit comments

Comments
 (0)