Skip to content

Commit 23f1a6e

Browse files
committed
Switch to resolve function w/ class comparison instead of strings
1 parent 6cfca45 commit 23f1a6e

File tree

7 files changed

+12
-17
lines changed

7 files changed

+12
-17
lines changed

src/components/ceremony/handlers/create-engagement-default-ceremony.handler.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { node, relation } from 'cypher-query-builder';
22
import { DateTime } from 'luxon';
33
import { ConfigService, EventsHandler, IEventHandler } from '~/core';
44
import { DatabaseService } from '~/core/database';
5+
import { LanguageEngagement } from '../../engagement/dto';
56
import { EngagementCreatedEvent } from '../../engagement/events';
67
import { CeremonyService } from '../ceremony.service';
78
import { CeremonyType } from '../dto';
@@ -20,7 +21,7 @@ export class CreateEngagementDefaultCeremonyHandler
2021
const { engagement } = event;
2122
const input = {
2223
type:
23-
engagement.__typename === 'LanguageEngagement'
24+
LanguageEngagement.resolve(engagement) === LanguageEngagement
2425
? CeremonyType.Dedication
2526
: CeremonyType.Certification,
2627
};

src/components/engagement/dto/engagement.dto.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ class Engagement extends Interfaces {
6363
static readonly Props: string[] = keysOf<Engagement>();
6464
static readonly SecuredProps: string[] = keysOf<SecuredProps<Engagement>>();
6565
static readonly Parent = import('../../project/dto').then((m) => m.IProject);
66+
static readonly resolve = resolveEngagementType;
6667

6768
declare readonly __typename: 'LanguageEngagement' | 'InternshipEngagement';
6869

src/components/engagement/engagement.resolver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ export class EngagementResolver {
6060
@Loader(EngagementLoader) engagements: LoaderOf<EngagementLoader>,
6161
): Promise<Engagement> {
6262
const engagement = await engagements.load(key);
63-
if (engagement.__typename !== 'LanguageEngagement') {
63+
if (LanguageEngagement.resolve(engagement) !== LanguageEngagement) {
6464
throw new InvalidIdForTypeException();
6565
}
6666
return engagement;

src/components/engagement/events/engagement-created.event.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ export class EngagementCreatedEvent {
1818
engagement: UnsecuredDto<LanguageEngagement>;
1919
input: CreateLanguageEngagement;
2020
} {
21-
return this.engagement.__typename === 'LanguageEngagement';
21+
return LanguageEngagement.resolve(this.engagement) === LanguageEngagement;
2222
}
2323

2424
isInternshipEngagement(): this is EngagementCreatedEvent & {
2525
engagement: UnsecuredDto<InternshipEngagement>;
2626
input: CreateInternshipEngagement;
2727
} {
28-
return this.engagement.__typename === 'InternshipEngagement';
28+
return LanguageEngagement.resolve(this.engagement) === InternshipEngagement;
2929
}
3030
}

src/components/engagement/events/engagement-updated.event.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ export class EngagementUpdatedEvent {
1919
updated: UnsecuredDto<LanguageEngagement>;
2020
input: UpdateLanguageEngagement;
2121
} {
22-
return this.updated.__typename === 'LanguageEngagement';
22+
return LanguageEngagement.resolve(this.updated) === LanguageEngagement;
2323
}
2424

2525
isInternshipEngagement(): this is EngagementUpdatedEvent & {
2626
updated: UnsecuredDto<InternshipEngagement>;
2727
input: UpdateInternshipEngagement;
2828
} {
29-
return this.updated.__typename === 'InternshipEngagement';
29+
return LanguageEngagement.resolve(this.updated) === InternshipEngagement;
3030
}
3131
}

src/components/engagement/handlers/set-initial-end-date.handler.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
ILogger,
77
Logger,
88
} from '~/core';
9-
import { EngagementStatus } from '../dto';
9+
import { EngagementStatus, LanguageEngagement } from '../dto';
1010
import { EngagementRepository } from '../engagement.repository';
1111
import { EngagementService } from '../engagement.service';
1212
import { EngagementCreatedEvent, EngagementUpdatedEvent } from '../events';
@@ -49,7 +49,7 @@ export class SetInitialEndDate implements IEventHandler<SubscribedEvent> {
4949
const initialEndDate = engagement.endDate;
5050

5151
const type =
52-
engagement.__typename === 'LanguageEngagement'
52+
LanguageEngagement.resolve(engagement) === LanguageEngagement
5353
? 'Language'
5454
: 'Internship';
5555
await this.engagementRepo[`update${type}`](

src/components/engagement/handlers/set-last-status-date.handler.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@ import {
77
Logger,
88
} from '~/core';
99
import { DatabaseService } from '~/core/database';
10-
import {
11-
EngagementStatus,
12-
InternshipEngagement,
13-
LanguageEngagement,
14-
} from '../dto';
10+
import { EngagementStatus, IEngagement } from '../dto';
1511
import { EngagementUpdatedEvent } from '../events';
1612

1713
@EventsHandler(EngagementUpdatedEvent)
@@ -48,10 +44,7 @@ export class SetLastStatusDate
4844
} as const;
4945

5046
event.updated = await this.db.updateProperties({
51-
type:
52-
updated.__typename === 'LanguageEngagement'
53-
? LanguageEngagement
54-
: InternshipEngagement,
47+
type: IEngagement.resolve(updated),
5548
object: updated,
5649
changes,
5750
});

0 commit comments

Comments
 (0)