Skip to content

Commit 7652fa1

Browse files
CarsonFbryanjnelson
andcommitted
Refactor Engagement relationship IDs to Links
Co-authored-by: Bryan Nelson <[email protected]>
1 parent cd127df commit 7652fa1

8 files changed

+21
-22
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export class CreateEngagementDefaultCeremonyHandler
4848

4949
event.engagement = {
5050
...engagement,
51-
ceremony: ceremonyId,
51+
ceremony: { id: ceremonyId },
5252
};
5353
}
5454
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export class DetachEngagementRootDirectoryHandler
1616
return;
1717
}
1818

19-
const ceremonyId = engagement?.ceremony?.value;
19+
const ceremonyId = engagement?.ceremony?.value?.id;
2020
if (!ceremonyId) {
2121
return;
2222
}

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

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
DateInterval,
88
DateTimeField,
99
DbLabel,
10-
ID,
1110
IntersectTypes,
1211
parentIdMiddleware,
1312
Resource,
@@ -28,7 +27,6 @@ import { e } from '~/core/edgedb';
2827
import { LinkTo, RegisterResource } from '~/core/resources';
2928
import { ScopedRole } from '../../authorization/dto';
3029
import { ChangesetAware } from '../../changeset/dto';
31-
import { DefinedFile } from '../../file/dto';
3230
import { Product, SecuredMethodologies } from '../../product/dto';
3331
import {
3432
InternshipProject,
@@ -80,7 +78,7 @@ class Engagement extends Interfaces {
8078
@DbLabel('EngagementStatus')
8179
readonly status: SecuredEngagementStatus;
8280

83-
readonly ceremony: Secured<ID>;
81+
readonly ceremony: Secured<LinkTo<'Ceremony'>>;
8482

8583
@Field({
8684
description: 'Translation / Growth Plan complete date',
@@ -166,7 +164,7 @@ export class LanguageEngagement extends Engagement {
166164
@Field(() => TranslationProject)
167165
declare readonly parent: BaseNode;
168166

169-
readonly language: Secured<ID>;
167+
readonly language: Secured<LinkTo<'Language'>>;
170168

171169
@Field()
172170
readonly firstScripture: SecuredBoolean;
@@ -185,7 +183,7 @@ export class LanguageEngagement extends Engagement {
185183
@Field()
186184
readonly paratextRegistryId: SecuredString;
187185

188-
readonly pnp: DefinedFile;
186+
readonly pnp: Secured<LinkTo<'File'>>;
189187

190188
@Field()
191189
readonly historicGoal: SecuredString;
@@ -207,11 +205,11 @@ export class InternshipEngagement extends Engagement {
207205
@Field(() => InternshipProject)
208206
declare readonly parent: BaseNode;
209207

210-
readonly countryOfOrigin: Secured<ID | null>;
208+
readonly countryOfOrigin: Secured<LinkTo<'Location'> | null>;
211209

212-
readonly intern: Secured<ID>;
210+
readonly intern: Secured<LinkTo<'User'>>;
213211

214-
readonly mentor: Secured<ID | null>;
212+
readonly mentor: Secured<LinkTo<'User'> | null>;
215213

216214
@Field()
217215
@DbLabel('InternPosition')
@@ -221,7 +219,7 @@ export class InternshipEngagement extends Engagement {
221219
@DbLabel('ProductMethodology')
222220
readonly methodologies: SecuredMethodologies;
223221

224-
readonly growthPlan: DefinedFile;
222+
readonly growthPlan: Secured<LinkTo<'File'>>;
225223
}
226224

227225
export const engagementRange = (engagement: UnsecuredDto<Engagement>) =>

src/components/engagement/engagement.repository.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,12 @@ export class EngagementRepository extends CommonRepository {
171171
type: 'project.type',
172172
status: 'status.value',
173173
},
174-
language: 'language.id',
175-
ceremony: 'ceremony.id',
176-
intern: 'intern.id',
177-
countryOfOrigin: 'countryOfOrigin.id',
178-
mentor: 'mentor.id',
174+
language: 'language { .id }',
175+
pnp: { id: 'props.pnp' },
176+
ceremony: 'ceremony { .id }',
177+
intern: 'intern { .id }',
178+
countryOfOrigin: 'countryOfOrigin { .id }',
179+
mentor: 'mentor { .id }',
179180
startDate: coalesce(
180181
'changedProps.startDateOverride',
181182
'props.startDateOverride',

src/components/engagement/engagement.resolver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export class EngagementResolver {
104104
@Parent() engagement: Engagement,
105105
@Loader(CeremonyLoader) ceremonies: LoaderOf<CeremonyLoader>,
106106
): Promise<SecuredCeremony> {
107-
return await mapSecuredValue(engagement.ceremony, (id) =>
107+
return await mapSecuredValue(engagement.ceremony, ({ id }) =>
108108
ceremonies.load(id),
109109
);
110110
}

src/components/engagement/internship-engagement.resolver.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,23 +24,23 @@ export class InternshipEngagementResolver {
2424
@Parent() engagement: InternshipEngagement,
2525
@Loader(UserLoader) users: LoaderOf<UserLoader>,
2626
): Promise<SecuredUser> {
27-
return await mapSecuredValue(engagement.intern, (id) => users.load(id));
27+
return await mapSecuredValue(engagement.intern, ({ id }) => users.load(id));
2828
}
2929

3030
@ResolveField(() => SecuredUser)
3131
async mentor(
3232
@Parent() engagement: InternshipEngagement,
3333
@Loader(UserLoader) users: LoaderOf<UserLoader>,
3434
): Promise<SecuredUser> {
35-
return await mapSecuredValue(engagement.mentor, (id) => users.load(id));
35+
return await mapSecuredValue(engagement.mentor, ({ id }) => users.load(id));
3636
}
3737

3838
@ResolveField(() => SecuredLocation)
3939
async countryOfOrigin(
4040
@Parent() engagement: InternshipEngagement,
4141
@Loader(LocationLoader) locations: LoaderOf<LocationLoader>,
4242
): Promise<SecuredLocation> {
43-
return await mapSecuredValue(engagement.countryOfOrigin, (id) =>
43+
return await mapSecuredValue(engagement.countryOfOrigin, ({ id }) =>
4444
locations.load(id),
4545
);
4646
}

src/components/engagement/language-engagement.resolver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export class LanguageEngagementResolver {
2525
@Parent() engagement: LanguageEngagement,
2626
@Loader(LanguageLoader) languages: LoaderOf<LanguageLoader>,
2727
): Promise<SecuredLanguage> {
28-
return await mapSecuredValue(engagement.language, (id) =>
28+
return await mapSecuredValue(engagement.language, ({ id }) =>
2929
languages.load({ id, view: viewOfChangeset(engagement.changeset) }),
3030
);
3131
}

src/components/product/handlers/extract-products-from-pnp.handler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export class ExtractProductsFromPnpHandler
3333
}
3434
const availableSteps = getAvailableSteps({ methodology });
3535

36-
const file = await this.files.getFile(engagement.pnp, event.session);
36+
const file = await this.files.getFile(engagement.pnp.id, event.session);
3737
const fv = await this.files.getFileVersion(
3838
file.latestVersionId,
3939
event.session,

0 commit comments

Comments
 (0)