@@ -97,6 +97,8 @@ export class PartnerRepository extends DtoRepository<
97
97
fieldRegions : [ 'FieldRegion' , input . fieldRegions ] ,
98
98
countries : [ 'Location' , input . countries ] ,
99
99
languagesOfConsulting : [ 'Language' , input . languagesOfConsulting ] ,
100
+ strategicAlliances : [ 'Partner' , input . strategicAlliances ] ,
101
+ parent : [ 'Partner' , input . parentId ] ,
100
102
} ) ,
101
103
)
102
104
. apply ( departmentIdBlockUtils . createMaybe ( input . departmentIdBlock ) )
@@ -122,11 +124,17 @@ export class PartnerRepository extends DtoRepository<
122
124
countries,
123
125
languagesOfConsulting,
124
126
departmentIdBlock,
127
+ strategicAlliances,
128
+ parentId,
125
129
...simpleChanges
126
130
} = changes ;
127
131
128
132
await this . updateProperties ( { id } , simpleChanges ) ;
129
133
134
+ if ( parentId !== undefined ) {
135
+ await this . updateRelation ( 'parent' , 'Partner' , changes . id , parentId ) ;
136
+ }
137
+
130
138
if ( pointOfContactId !== undefined ) {
131
139
await this . updateRelation (
132
140
'pointOfContact' ,
@@ -173,6 +181,20 @@ export class PartnerRepository extends DtoRepository<
173
181
}
174
182
}
175
183
184
+ if ( strategicAlliances ) {
185
+ try {
186
+ await this . updateRelationList ( {
187
+ id : changes . id ,
188
+ relation : 'strategicAlliances' ,
189
+ newList : strategicAlliances ,
190
+ } ) ;
191
+ } catch ( e ) {
192
+ throw e instanceof InputException
193
+ ? e . withField ( 'partner.strategicAlliances' )
194
+ : e ;
195
+ }
196
+ }
197
+
176
198
if ( languagesOfConsulting ) {
177
199
try {
178
200
await this . updateRelationList ( {
@@ -261,6 +283,26 @@ export class PartnerRepository extends DtoRepository<
261
283
) ,
262
284
) ,
263
285
)
286
+ . subQuery ( 'node' , ( sub ) =>
287
+ sub
288
+ . match ( [
289
+ node ( 'node' ) ,
290
+ relation ( 'out' , '' , 'strategicAlliances' ) ,
291
+ node ( 'strategicAlliances' , 'Partner' ) ,
292
+ ] )
293
+ . return (
294
+ collect ( 'strategicAlliances { .id }' ) . as ( 'strategicAlliances' ) ,
295
+ ) ,
296
+ )
297
+ . subQuery ( 'node' , ( sub ) =>
298
+ sub
299
+ . optionalMatch ( [
300
+ node ( 'node' ) ,
301
+ relation ( 'out' , '' , 'parent' , ACTIVE ) ,
302
+ node ( 'parent' , 'Partner' ) ,
303
+ ] )
304
+ . return ( 'parent { .id } as parent' ) ,
305
+ )
264
306
. apply ( matchProps ( ) )
265
307
. optionalMatch ( [
266
308
node ( 'node' ) ,
@@ -292,6 +334,8 @@ export class PartnerRepository extends DtoRepository<
292
334
departmentIdBlock : 'departmentIdBlock' ,
293
335
scope : 'scopedRoles' ,
294
336
pinned : 'exists((:User { id: $requestingUser })-[:pinned]->(node))' ,
337
+ parent : 'parent { .id }' ,
338
+ strategicAlliances : 'strategicAlliances' ,
295
339
} ) . as ( 'dto' ) ,
296
340
) ;
297
341
}
0 commit comments