Skip to content

Commit 605a484

Browse files
RusticFlarebbakerman
authored andcommitted
Make a Relay mutation without a clientMutationId
1 parent 29fdba2 commit 605a484

File tree

1 file changed

+23
-7
lines changed

1 file changed

+23
-7
lines changed

src/main/java/graphql/relay/Relay.java

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -172,23 +172,39 @@ public GraphQLObjectType connectionType(String name, GraphQLObjectType edgeType,
172172
.build();
173173
}
174174

175-
176175
public GraphQLFieldDefinition mutationWithClientMutationId(String name, String fieldName,
177176
List<GraphQLInputObjectField> inputFields,
178177
List<GraphQLFieldDefinition> outputFields,
179178
DataFetcher dataFetcher) {
179+
GraphQLInputObjectField clientMutationIdInputField = newInputObjectField()
180+
.name("clientMutationId")
181+
.type(GraphQLString)
182+
.build();
183+
GraphQLFieldDefinition clientMutationIdPayloadField = newFieldDefinition()
184+
.name("clientMutationId")
185+
.type(GraphQLString)
186+
.build();
187+
188+
return mutation(name, fieldName, addElementToList(inputFields, clientMutationIdInputField),
189+
addElementToList(outputFields, clientMutationIdPayloadField), dataFetcher);
190+
}
191+
192+
private static <T> List<T> addElementToList(List<T> list, T element) {
193+
ArrayList<T> result = new ArrayList<>(list);
194+
result.add(element);
195+
return result;
196+
}
197+
198+
public GraphQLFieldDefinition mutation(String name, String fieldName,
199+
List<GraphQLInputObjectField> inputFields,
200+
List<GraphQLFieldDefinition> outputFields,
201+
DataFetcher dataFetcher) {
180202
GraphQLInputObjectType inputObjectType = newInputObject()
181203
.name(name + "Input")
182-
.field(newInputObjectField()
183-
.name("clientMutationId")
184-
.type(GraphQLString))
185204
.fields(inputFields)
186205
.build();
187206
GraphQLObjectType outputType = newObject()
188207
.name(name + "Payload")
189-
.field(newFieldDefinition()
190-
.name("clientMutationId")
191-
.type(GraphQLString))
192208
.fields(outputFields)
193209
.build();
194210

0 commit comments

Comments
 (0)