Skip to content

Commit d7c968e

Browse files
rdonigianCarsonF
authored andcommitted
Add Partner.languageOfReporting
1 parent 12dac48 commit d7c968e

File tree

7 files changed

+37
-0
lines changed

7 files changed

+37
-0
lines changed

dbschema/partner.gel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ module default {
3131

3232
pointOfContact: User;
3333
languageOfWiderCommunication: Language;
34+
languageOfReporting: Language;
3435

3536
required organization: Organization {
3637
readonly := true;

src/components/partner/dto/create-partner.dto.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ export abstract class CreatePartner {
5050
@IdField({ nullable: true })
5151
readonly languageOfWiderCommunicationId?: ID<'Language'> | null;
5252

53+
@IdField({ nullable: true })
54+
readonly languageOfReportingId?: ID<'Language'> | null;
55+
5356
@Field(() => [IDType], { nullable: true })
5457
@IsId({ each: true })
5558
@Transform(({ value }) => uniq(value))

src/components/partner/dto/partner.dto.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ export class Partner extends Interfaces {
6161

6262
readonly languageOfWiderCommunication: Secured<LinkTo<'Language'> | null>;
6363

64+
readonly languageOfReporting: Secured<LinkTo<'Language'> | null>;
65+
6466
readonly fieldRegions: Required<
6567
Secured<ReadonlyArray<LinkTo<'FieldRegion'>>>
6668
>;

src/components/partner/dto/update-partner.dto.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ export abstract class UpdatePartner {
4848
@IdField({ nullable: true })
4949
readonly languageOfWiderCommunicationId?: ID<'Language'> | null;
5050

51+
@IdField({ nullable: true })
52+
readonly languageOfReportingId?: ID<'Language'> | null;
53+
5154
@ListField(() => IDType, { optional: true })
5255
@IsId({ each: true })
5356
readonly countries?: ReadonlyArray<ID<'Location'>>;

src/components/partner/partner.gel.repository.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export class PartnerGelRepository
1414
organization: true,
1515
pointOfContact: true,
1616
languageOfWiderCommunication: true,
17+
languageOfReporting: true,
1718
fieldRegions: true,
1819
countries: true,
1920
languagesOfConsulting: true,

src/components/partner/partner.repository.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ export class PartnerRepository extends DtoRepository(Partner) {
9393
fieldRegions: ['FieldRegion', input.fieldRegions],
9494
countries: ['Location', input.countries],
9595
languagesOfConsulting: ['Language', input.languagesOfConsulting],
96+
languageOfReporting: ['Language', input.languageOfReportingId],
9697
}),
9798
)
9899
.apply(departmentIdBlockUtils.createMaybe(input.departmentIdBlock))
@@ -114,6 +115,7 @@ export class PartnerRepository extends DtoRepository(Partner) {
114115
id,
115116
pointOfContactId,
116117
languageOfWiderCommunicationId,
118+
languageOfReportingId,
117119
fieldRegions,
118120
countries,
119121
languagesOfConsulting,
@@ -141,6 +143,15 @@ export class PartnerRepository extends DtoRepository(Partner) {
141143
);
142144
}
143145

146+
if (languageOfReportingId) {
147+
await this.updateRelation(
148+
'languageOfReporting',
149+
'Language',
150+
changes.id,
151+
languageOfReportingId,
152+
);
153+
}
154+
144155
if (countries) {
145156
try {
146157
await this.updateRelationList({
@@ -273,6 +284,11 @@ export class PartnerRepository extends DtoRepository(Partner) {
273284
relation('out', '', 'languageOfWiderCommunication', ACTIVE),
274285
node('languageOfWiderCommunication', 'Language'),
275286
])
287+
.optionalMatch([
288+
node('node'),
289+
relation('out', '', 'languageOfReporting', ACTIVE),
290+
node('languageOfReporting', 'Language'),
291+
])
276292
.apply(departmentIdBlockUtils.hydrate())
277293
.return<{ dto: UnsecuredDto<Partner> }>(
278294
merge('props', {
@@ -282,6 +298,7 @@ export class PartnerRepository extends DtoRepository(Partner) {
282298
pointOfContact: 'pointOfContact { .id }',
283299
languageOfWiderCommunication:
284300
'languageOfWiderCommunication { .id }',
301+
languageOfReporting: 'languageOfReporting { .id }',
285302
fieldRegions: 'fieldRegions',
286303
countries: 'countries',
287304
languagesOfConsulting: 'languagesOfConsulting',

src/components/partner/partner.resolver.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,16 @@ export class PartnerResolver {
103103
);
104104
}
105105

106+
@ResolveField(() => SecuredLanguageNullable)
107+
async languageOfReporting(
108+
@Parent() partner: Partner,
109+
@Loader(LanguageLoader) languages: LoaderOf<LanguageLoader>,
110+
): Promise<SecuredLanguageNullable> {
111+
return await mapSecuredValue(partner.languageOfReporting, ({ id }) =>
112+
languages.load({ id, view: { active: true } }),
113+
);
114+
}
115+
106116
@ResolveField(() => SecuredFieldRegions)
107117
async fieldRegions(
108118
@Parent() partner: Partner,

0 commit comments

Comments
 (0)