@@ -66,7 +66,8 @@ module.exports = function PostGraphileNestedMutationPlugin(builder) {
66
66
pgQueryFromResolveData : queryFromResolveData ,
67
67
pgNestedPluginForwardInputTypes,
68
68
pgNestedPluginReverseInputTypes,
69
- pgNestedResolvers,
69
+ pgNestedCreateResolvers,
70
+ pgNestedUpdateResolvers,
70
71
pgNestedTableConnectorFields,
71
72
pgNestedTableConnect,
72
73
pgNestedTableDeleterFields,
@@ -97,7 +98,7 @@ module.exports = function PostGraphileNestedMutationPlugin(builder) {
97
98
! pgNestedPluginForwardInputTypes [ table . id ] &&
98
99
! pgNestedPluginReverseInputTypes [ table . id ]
99
100
) {
100
- pgNestedResolvers [ table . id ] = field . resolve ;
101
+ pgNestedCreateResolvers [ table . id ] = field . resolve ;
101
102
return field ;
102
103
}
103
104
@@ -207,7 +208,7 @@ module.exports = function PostGraphileNestedMutationPlugin(builder) {
207
208
208
209
if ( fieldValue . create ) {
209
210
const createData = fieldValue . create ;
210
- const resolver = pgNestedResolvers [ foreignTable . id ] ;
211
+ const resolver = pgNestedCreateResolvers [ foreignTable . id ] ;
211
212
const tableVar = inflection . tableFieldName ( foreignTable ) ;
212
213
213
214
const insertData = Object . assign (
@@ -232,6 +233,35 @@ module.exports = function PostGraphileNestedMutationPlugin(builder) {
232
233
resolveResult . data [ `__pk__${ k . name } ` ] ;
233
234
} ) ;
234
235
}
236
+
237
+ await Promise . all ( Object . keys ( fieldValue ) . map ( async k => {
238
+ if ( k . includes ( 'updateBy' ) ) {
239
+ const rowData = fieldValue [ k ]
240
+ const resolver = pgNestedUpdateResolvers [ foreignTable . id ] ;
241
+
242
+ const updateData = Object . assign (
243
+ { } ,
244
+ rowData ,
245
+ await recurseForwardNestedMutations (
246
+ data ,
247
+ { input : rowData } ,
248
+ { pgClient } ,
249
+ resolveInfo ,
250
+ ) ,
251
+ ) ;
252
+
253
+ const resolveResult = await resolver (
254
+ data ,
255
+ { input : updateData } ,
256
+ { pgClient } ,
257
+ resolveInfo ,
258
+ ) ;
259
+ foreignKeys . forEach ( ( k , idx ) => {
260
+ output [ inflection . column ( keys [ idx ] ) ] =
261
+ resolveResult . data [ `__pk__${ k . name } ` ] ;
262
+ } ) ;
263
+ }
264
+ } ) )
235
265
} ) ,
236
266
) ;
237
267
@@ -580,7 +610,7 @@ module.exports = function PostGraphileNestedMutationPlugin(builder) {
580
610
if ( fieldValue . create ) {
581
611
await Promise . all (
582
612
fieldValue . create . map ( async ( rowData ) => {
583
- const resolver = pgNestedResolvers [ foreignTable . id ] ;
613
+ const resolver = pgNestedCreateResolvers [ foreignTable . id ] ;
584
614
const tableVar = inflection . tableFieldName ( foreignTable ) ;
585
615
586
616
const keyData = { } ;
@@ -610,6 +640,33 @@ module.exports = function PostGraphileNestedMutationPlugin(builder) {
610
640
} ) ,
611
641
) ;
612
642
}
643
+
644
+ await Promise . all ( Object . keys ( fieldValue ) . map ( async k => {
645
+ if ( k . includes ( 'updateBy' ) ) {
646
+ await Promise . all (
647
+ fieldValue [ k ] . map ( async ( rowData ) => {
648
+ const resolver = pgNestedUpdateResolvers [ foreignTable . id ] ;
649
+
650
+ const { data : reverseRow } = await resolver (
651
+ data ,
652
+ {
653
+ input : Object . assign ( { } , rowData ) ,
654
+ } ,
655
+ { pgClient } ,
656
+ resolveInfo ,
657
+ ) ;
658
+
659
+ const rowKeyValues = { } ;
660
+ if ( primaryKeys ) {
661
+ primaryKeys . forEach ( ( k ) => {
662
+ rowKeyValues [ k . name ] = reverseRow [ `__pk__${ k . name } ` ] ;
663
+ } ) ;
664
+ }
665
+ modifiedRows . push ( rowKeyValues ) ;
666
+ } ) ,
667
+ ) ;
668
+ }
669
+ } ) )
613
670
} ) ,
614
671
) ;
615
672
@@ -655,7 +712,11 @@ module.exports = function PostGraphileNestedMutationPlugin(builder) {
655
712
} ;
656
713
657
714
if ( isPgCreateMutationField ) {
658
- pgNestedResolvers [ table . id ] = newResolver ;
715
+ pgNestedCreateResolvers [ table . id ] = newResolver ;
716
+ }
717
+
718
+ if ( isPgUpdateMutationField ) {
719
+ pgNestedUpdateResolvers [ table . id ] = newResolver ;
659
720
}
660
721
661
722
return Object . assign ( { } , field , { resolve : newResolver } ) ;
0 commit comments