Skip to content

Commit 29fb9b4

Browse files
committed
Add example of multiple events/hooks
1 parent 3136fdf commit 29fb9b4

File tree

1 file changed

+14
-16
lines changed

1 file changed

+14
-16
lines changed

src/components/periodic-report/handlers/sync-progress-report-to-engagement.handler.ts

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
import { Injectable } from '@nestjs/common';
12
import { Settings } from 'luxon';
23
import { DateInterval, type UnsecuredDto } from '~/common';
3-
import { EventsHandler, type IEventHandler, ILogger, Logger } from '~/core';
4+
import { ILogger, Logger } from '~/core';
5+
import { OnHook } from '~/core/hooks';
46
import { EngagementService } from '../../engagement';
57
import { type Engagement, engagementRange } from '../../engagement/dto';
68
import {
@@ -15,20 +17,8 @@ import {
1517
type Intervals,
1618
} from './abstract-periodic-report-sync';
1719

18-
type SubscribedEvent =
19-
| EngagementCreatedEvent
20-
| EngagementUpdatedEvent
21-
| ProjectUpdatedEvent;
22-
23-
@EventsHandler(
24-
EngagementCreatedEvent,
25-
EngagementUpdatedEvent,
26-
ProjectUpdatedEvent,
27-
)
28-
export class SyncProgressReportToEngagementDateRange
29-
extends AbstractPeriodicReportSync
30-
implements IEventHandler<SubscribedEvent>
31-
{
20+
@Injectable()
21+
export class SyncProgressReportToEngagementDateRange extends AbstractPeriodicReportSync {
3222
constructor(
3323
periodicReports: PeriodicReportService,
3424
private readonly engagements: EngagementService,
@@ -37,7 +27,15 @@ export class SyncProgressReportToEngagementDateRange
3727
super(periodicReports);
3828
}
3929

40-
async handle(event: SubscribedEvent) {
30+
@OnHook(EngagementCreatedEvent)
31+
@OnHook(EngagementUpdatedEvent)
32+
@OnHook(ProjectUpdatedEvent)
33+
async handle(
34+
event:
35+
| EngagementCreatedEvent
36+
| EngagementUpdatedEvent
37+
| ProjectUpdatedEvent,
38+
) {
4139
// Only LanguageEngagements
4240
if (
4341
!(

0 commit comments

Comments
 (0)