1
+ import { Injectable } from '@nestjs/common' ;
1
2
import { Settings } from 'luxon' ;
2
3
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' ;
4
6
import { EngagementService } from '../../engagement' ;
5
7
import { type Engagement , engagementRange } from '../../engagement/dto' ;
6
8
import {
@@ -15,20 +17,8 @@ import {
15
17
type Intervals ,
16
18
} from './abstract-periodic-report-sync' ;
17
19
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 {
32
22
constructor (
33
23
periodicReports : PeriodicReportService ,
34
24
private readonly engagements : EngagementService ,
@@ -37,7 +27,15 @@ export class SyncProgressReportToEngagementDateRange
37
27
super ( periodicReports ) ;
38
28
}
39
29
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
+ ) {
41
39
// Only LanguageEngagements
42
40
if (
43
41
! (
0 commit comments