Skip to content

Commit cc6027d

Browse files
authored
Merge pull request #3 from denvned/patch-2
Omit mutation object when there are no mutations
2 parents 37445da + 76fc14f commit cc6027d

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

src/main/java/graphql/servlet/GraphQLServlet.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ public class GraphQLServlet extends HttpServlet implements Servlet, GraphQLMBean
6868

6969
protected void updateSchema() {
7070
GraphQLObjectType.Builder object = newObject().name("query");
71-
GraphQLObjectType.Builder mutationObject = newObject().name("mutation");
7271

7372
for (GraphQLQueryProvider provider : queryProviders) {
7473
GraphQLObjectType query = provider.getQuery();
@@ -80,12 +79,19 @@ protected void updateSchema() {
8079
build());
8180
}
8281

83-
for (GraphQLMutationProvider provider : mutationProviders) {
84-
provider.getMutations().forEach(mutationObject::field);
85-
}
86-
8782
readOnlySchema = newSchema().query(object.build()).build();
88-
schema = newSchema().query(object.build()).mutation(mutationObject.build()).build();
83+
84+
if (mutationProviders.isEmpty()) {
85+
schema = readOnlySchema;
86+
} else {
87+
GraphQLObjectType.Builder mutationObject = newObject().name("mutation");
88+
89+
for (GraphQLMutationProvider provider : mutationProviders) {
90+
provider.getMutations().forEach(mutationObject::field);
91+
}
92+
93+
schema = newSchema().query(object.build()).mutation(mutationObject.build()).build();
94+
}
8995
}
9096

9197
public GraphQLServlet() {

src/test/java/graphql/servlet/GraphQLServletTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public void mutationProvider() {
9090
assertTrue(servlet.schema.getMutationType().getFieldDefinition("int").getType().equals(GraphQLInt));
9191
assertNull(servlet.readOnlySchema.getMutationType());
9292
servlet.unbindMutationProvider(mutationProvider);
93-
assertTrue(servlet.schema.getMutationType().getFieldDefinitions().isEmpty());
93+
assertNull(servlet.schema.getMutationType());
9494
}
9595

9696
@Test @SneakyThrows

0 commit comments

Comments
 (0)