Skip to content

Commit d956a15

Browse files
authored
Merge pull request #3505 from SeedCompany/date-range-bugs
2 parents 0c8902d + 5958c20 commit d956a15

File tree

3 files changed

+25
-3
lines changed

3 files changed

+25
-3
lines changed

src/components/engagement/handlers/validate-eng-date-overrides-on-project-change.handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { EventsHandler, type IEventHandler } from '~/core';
33
import { ProjectUpdatedEvent } from '../../project/events';
44
import { EngagementService } from '../engagement.service';
55

6-
@EventsHandler(ProjectUpdatedEvent)
6+
@EventsHandler([ProjectUpdatedEvent, 10])
77
export class ValidateEngDateOverridesOnProjectChangeHandler
88
implements IEventHandler<ProjectUpdatedEvent>
99
{

src/components/partnership/handlers/validate-partnership-date-overrides-on-project-change.handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { OrganizationLoader } from '../../organization';
55
import { ProjectUpdatedEvent } from '../../project/events';
66
import { PartnershipService } from '../partnership.service';
77

8-
@EventsHandler(ProjectUpdatedEvent)
8+
@EventsHandler([ProjectUpdatedEvent, 10])
99
export class ValidatePartnershipDateOverridesOnProjectChangeHandler
1010
implements IEventHandler<ProjectUpdatedEvent>
1111
{

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

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Settings } from 'luxon';
12
import { DateInterval, type UnsecuredDto } from '~/common';
23
import { EventsHandler, type IEventHandler, ILogger, Logger } from '~/core';
34
import { EngagementService } from '../../engagement';
@@ -89,12 +90,33 @@ export class SyncProgressReportToEngagementDateRange
8990
: [event.engagement];
9091

9192
for (const engagement of engagements) {
93+
Settings.throwOnInvalid = false;
9294
const [updated, prev] =
9395
event instanceof ProjectUpdatedEvent
9496
? this.intervalsFromProjectChange(engagement, event)
9597
: event instanceof EngagementCreatedEvent
9698
? [engagementRange(event.engagement), null]
97-
: [engagementRange(event.updated), engagementRange(event.previous)];
99+
: [
100+
engagementRange(event.updated), //
101+
engagementRange(event.previous),
102+
];
103+
Settings.throwOnInvalid = true;
104+
if (prev && !prev.isValid) {
105+
this.logger.error('Found invalid date range for event', {
106+
eventType: event.constructor.name,
107+
diffSide: 'before',
108+
event,
109+
});
110+
throw new Error('Invalid engagement date range');
111+
}
112+
if (updated && !updated.isValid) {
113+
this.logger.error('Found invalid date range for event', {
114+
eventType: event.constructor.name,
115+
diffSide: 'after',
116+
event,
117+
});
118+
throw new Error('Invalid engagement date range');
119+
}
98120

99121
const diff = this.diffBy(updated, prev, 'quarter');
100122

0 commit comments

Comments
 (0)