@@ -93,6 +93,8 @@ export class PartnerRepository extends DtoRepository(Partner) {
93
93
fieldRegions : [ 'FieldRegion' , input . fieldRegions ] ,
94
94
countries : [ 'Location' , input . countries ] ,
95
95
languagesOfConsulting : [ 'Language' , input . languagesOfConsulting ] ,
96
+ strategicAlliances : [ 'Partner' , input . strategicAlliances ] ,
97
+ parent : [ 'Partner' , input . parentId ] ,
96
98
} ) ,
97
99
)
98
100
. apply ( departmentIdBlockUtils . createMaybe ( input . departmentIdBlock ) )
@@ -118,11 +120,17 @@ export class PartnerRepository extends DtoRepository(Partner) {
118
120
countries,
119
121
languagesOfConsulting,
120
122
departmentIdBlock,
123
+ strategicAlliances,
124
+ parentId,
121
125
...simpleChanges
122
126
} = changes ;
123
127
124
128
await this . updateProperties ( { id } , simpleChanges ) ;
125
129
130
+ if ( parentId !== undefined ) {
131
+ await this . updateRelation ( 'parent' , 'Partner' , changes . id , parentId ) ;
132
+ }
133
+
126
134
if ( pointOfContactId !== undefined ) {
127
135
await this . updateRelation (
128
136
'pointOfContact' ,
@@ -169,6 +177,20 @@ export class PartnerRepository extends DtoRepository(Partner) {
169
177
}
170
178
}
171
179
180
+ if ( strategicAlliances ) {
181
+ try {
182
+ await this . updateRelationList ( {
183
+ id : changes . id ,
184
+ relation : 'strategicAlliances' ,
185
+ newList : strategicAlliances ,
186
+ } ) ;
187
+ } catch ( e ) {
188
+ throw e instanceof InputException
189
+ ? e . withField ( 'partner.strategicAlliances' )
190
+ : e ;
191
+ }
192
+ }
193
+
172
194
if ( languagesOfConsulting ) {
173
195
try {
174
196
await this . updateRelationList ( {
@@ -257,6 +279,26 @@ export class PartnerRepository extends DtoRepository(Partner) {
257
279
) ,
258
280
) ,
259
281
)
282
+ . subQuery ( 'node' , ( sub ) =>
283
+ sub
284
+ . match ( [
285
+ node ( 'node' ) ,
286
+ relation ( 'out' , '' , 'strategicAlliances' ) ,
287
+ node ( 'strategicAlliances' , 'Partner' ) ,
288
+ ] )
289
+ . return (
290
+ collect ( 'strategicAlliances { .id }' ) . as ( 'strategicAlliances' ) ,
291
+ ) ,
292
+ )
293
+ . subQuery ( 'node' , ( sub ) =>
294
+ sub
295
+ . optionalMatch ( [
296
+ node ( 'node' ) ,
297
+ relation ( 'out' , '' , 'parent' , ACTIVE ) ,
298
+ node ( 'parent' , 'Partner' ) ,
299
+ ] )
300
+ . return ( 'parent { .id } as parent' ) ,
301
+ )
260
302
. apply ( matchProps ( ) )
261
303
. optionalMatch ( [
262
304
node ( 'node' ) ,
@@ -288,6 +330,8 @@ export class PartnerRepository extends DtoRepository(Partner) {
288
330
departmentIdBlock : 'departmentIdBlock' ,
289
331
scope : 'scopedRoles' ,
290
332
pinned,
333
+ parent : 'parent { .id }' ,
334
+ strategicAlliances : 'strategicAlliances' ,
291
335
} ) . as ( 'dto' ) ,
292
336
) ;
293
337
}
0 commit comments