Skip to content

Commit 6842a06

Browse files
authored
[client] support different selection sets against same object (#760)
Allow querying same object type with different selection sets, e.g. given schema ```graphql type Query { someObject: SomeObject! } type SomeObject { id: Int! name: String! optional: String } ``` You can now write following queries ```graphql query { first: someObject { id name } second: someObject { id name optional } } ``` Plugins in turn will generate `SomeObject(id, name)` and `SomeObject2(id, name, optional)` data classes. Resolves: #737
1 parent 1eaf318 commit 6842a06

File tree

23 files changed

+985
-175
lines changed

23 files changed

+985
-175
lines changed

plugins/graphql-kotlin-gradle-plugin/src/test/resources/mocks/JUnitQuery.graphql

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@ query JUnitQuery($simpleCriteria: SimpleArgumentInput!) {
99
valid
1010
}
1111
listQuery {
12-
__typename
1312
id
1413
name
1514
}
1615
complexObjectQuery {
17-
__typename
1816
id
1917
name
2018
optional

plugins/graphql-kotlin-gradle-plugin/src/test/resources/mocks/JUnitQueryResponse.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,11 @@
1111
},
1212
"listQuery": [
1313
{
14-
"__typename": "BasicObject",
1514
"id": 195555040,
1615
"name": "whatever"
1716
}
1817
],
1918
"complexObjectQuery": {
20-
"__typename": "ComplexObject",
2119
"id": 888961957,
2220
"name": "whatever",
2321
"optional": null,

plugins/graphql-kotlin-gradle-plugin/src/test/resources/templates/Application.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ fun main() {
2828
val interfaceResult = data?.interfaceQuery
2929
assert(interfaceResult is JUnitQuery.SecondInterfaceImplementation)
3030
val unionResult = data?.unionQuery
31-
assert(unionResult is JUnitQuery.BasicObject)
31+
assert(unionResult is JUnitQuery.BasicObject2)
3232
assert(response.errors == null)
3333
assert(response.extensions == null)
3434
}

plugins/graphql-kotlin-gradle-plugin/src/test/resources/templates/JUnit.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class GraphQLMavenPluginTest {
4848
val interfaceResult = data?.interfaceQuery
4949
assertTrue(interfaceResult is JUnitQuery.SecondInterfaceImplementation)
5050
val unionResult = data?.unionQuery
51-
assertTrue(unionResult is JUnitQuery.BasicObject)
51+
assertTrue(unionResult is JUnitQuery.BasicObject2)
5252
}
5353
}
5454
}

plugins/graphql-kotlin-maven-plugin/src/integration/basic-setup/src/main/resources/ExampleQuery.graphql

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@ query ExampleQuery($simpleCriteria: SimpleArgumentInput!) {
99
valid
1010
}
1111
listQuery {
12-
__typename
1312
id
1413
name
1514
}
1615
complexObjectQuery {
17-
__typename
1816
id
1917
name
2018
optional

plugins/graphql-kotlin-maven-plugin/src/integration/basic-setup/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class GraphQLMavenPluginTest {
6666
val interfaceResult = data?.interfaceQuery
6767
assertTrue(interfaceResult is ExampleQuery.SecondInterfaceImplementation)
6868
val unionResult = data?.unionQuery
69-
assertTrue(unionResult is ExampleQuery.BasicObject)
69+
assertTrue(unionResult is ExampleQuery.BasicObject2)
7070
}
7171
}
7272
}

plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup/src/main/resources/ExampleQuery.graphql

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@ query ExampleQuery($simpleCriteria: SimpleArgumentInput!) {
99
valid
1010
}
1111
listQuery {
12-
__typename
1312
id
1413
name
1514
}
1615
complexObjectQuery {
17-
__typename
1816
id
1917
name
2018
optional

plugins/graphql-kotlin-maven-plugin/src/integration/complete-setup/src/test/kotlin/com/expediagroup/graphql/plugin/maven/GraphQLMavenPluginTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class GraphQLMavenPluginTest {
6666
val interfaceResult = data?.interfaceQuery
6767
assertTrue(interfaceResult is ExampleQuery.SecondInterfaceImplementation)
6868
val unionResult = data?.unionQuery
69-
assertTrue(unionResult is ExampleQuery.BasicObject)
69+
assertTrue(unionResult is ExampleQuery.BasicObject2)
7070
}
7171
}
7272
}

plugins/graphql-kotlin-maven-plugin/src/integration/generate-client/src/main/resources/ExampleQuery.graphql

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@ query ExampleQuery($simpleCriteria: SimpleArgumentInput!) {
99
valid
1010
}
1111
listQuery {
12-
__typename
1312
id
1413
name
1514
}
1615
complexObjectQuery {
17-
__typename
1816
id
1917
name
2018
optional

plugins/graphql-kotlin-maven-plugin/src/integration/generate-test-client/src/test/resources/ExampleQuery.graphql

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@ query ExampleQuery($simpleCriteria: SimpleArgumentInput!) {
99
valid
1010
}
1111
listQuery {
12-
__typename
1312
id
1413
name
1514
}
1615
complexObjectQuery {
17-
__typename
1816
id
1917
name
2018
optional

0 commit comments

Comments
 (0)