File tree 10 files changed +57
-11
lines changed
plugins/client/graphql-kotlin-client-generator/src
main/kotlin/com/expediagroup/graphql/plugin/client/generator/types
10 files changed +57
-11
lines changed Original file line number Diff line number Diff line change @@ -23,7 +23,7 @@ import com.expediagroup.graphql.plugin.client.generator.extensions.findFragmentD
23
23
import com.squareup.kotlinpoet.ClassName
24
24
import com.squareup.kotlinpoet.FunSpec
25
25
import com.squareup.kotlinpoet.KModifier
26
- import com.squareup.kotlinpoet.MemberName
26
+ import com.squareup.kotlinpoet.MemberName.Companion.member
27
27
import com.squareup.kotlinpoet.ParameterSpec
28
28
import com.squareup.kotlinpoet.TypeSpec
29
29
import graphql.language.FragmentSpread
@@ -67,8 +67,7 @@ internal fun generateGraphQLObjectTypeSpec(
67
67
val constructorParameter = ParameterSpec .builder(propertySpec.name, propertySpec.type)
68
68
val className = propertySpec.type as ? ClassName
69
69
if (className != null && context.enumClassToTypeSpecs.keys.contains(className)) {
70
- val unknownValue = MemberName (className.packageName, " ${className.simpleName} .$UNKNOWN_VALUE " )
71
- constructorParameter.defaultValue(" %M" , unknownValue)
70
+ constructorParameter.defaultValue(" %T.%N" , className, className.member(UNKNOWN_VALUE ))
72
71
}
73
72
constructorBuilder.addParameter(constructorParameter.build())
74
73
}
Original file line number Diff line number Diff line change 1
1
query EnumQuery {
2
2
enumQuery
3
+ otherEnumQuery
3
4
}
Original file line number Diff line number Diff line change @@ -2,11 +2,11 @@ package com.expediagroup.graphql.generated
2
2
3
3
import com.expediagroup.graphql.client.types.GraphQLClientRequest
4
4
import com.expediagroup.graphql.generated.enums.CustomEnum
5
- import com.expediagroup.graphql.generated.enums.CustomEnum.__UNKNOWN_VALUE
5
+ import com.expediagroup.graphql.generated.enums.OtherEnum
6
6
import kotlin.String
7
7
import kotlin.reflect.KClass
8
8
9
- public const val ENUM_QUERY : String = " query EnumQuery {\n enumQuery\n }"
9
+ public const val ENUM_QUERY : String = " query EnumQuery {\n enumQuery\n otherEnumQuery \n }"
10
10
11
11
public class EnumQuery : GraphQLClientRequest <EnumQuery .Result > {
12
12
public override val query: String = ENUM_QUERY
@@ -19,6 +19,10 @@ public class EnumQuery : GraphQLClientRequest<EnumQuery.Result> {
19
19
/* *
20
20
* Query that returns enum value
21
21
*/
22
- public val enumQuery : CustomEnum = CustomEnum .__UNKNOWN_VALUE
22
+ public val enumQuery : CustomEnum = CustomEnum .__UNKNOWN_VALUE ,
23
+ /* *
24
+ * Query that returns other enum value
25
+ */
26
+ public val otherEnumQuery : OtherEnum = OtherEnum .__UNKNOWN_VALUE
23
27
)
24
28
}
Original file line number Diff line number Diff line change
1
+ package com.expediagroup.graphql.generated.enums
2
+
3
+ import com.fasterxml.jackson.`annotation`.JsonEnumDefaultValue
4
+
5
+ /* *
6
+ * Other enum description
7
+ */
8
+ public enum class OtherEnum {
9
+ FIRST ,
10
+ SECOND ,
11
+ /* *
12
+ * This is a default enum value that will be used when attempting to deserialize unknown value.
13
+ */
14
+ @JsonEnumDefaultValue
15
+ __UNKNOWN_VALUE ,
16
+ }
Original file line number Diff line number Diff line change 1
1
query EnumQuery {
2
2
enumQuery
3
+ otherEnumQuery
3
4
}
Original file line number Diff line number Diff line change @@ -2,12 +2,12 @@ package com.expediagroup.graphql.generated
2
2
3
3
import com.expediagroup.graphql.client.types.GraphQLClientRequest
4
4
import com.expediagroup.graphql.generated.enums.CustomEnum
5
- import com.expediagroup.graphql.generated.enums.CustomEnum.__UNKNOWN_VALUE
5
+ import com.expediagroup.graphql.generated.enums.OtherEnum
6
6
import kotlin.String
7
7
import kotlin.reflect.KClass
8
8
import kotlinx.serialization.Serializable
9
9
10
- public const val ENUM_QUERY : String = " query EnumQuery {\n enumQuery\n }"
10
+ public const val ENUM_QUERY : String = " query EnumQuery {\n enumQuery\n otherEnumQuery \n }"
11
11
12
12
@Serializable
13
13
public class EnumQuery : GraphQLClientRequest <EnumQuery .Result > {
@@ -22,6 +22,10 @@ public class EnumQuery : GraphQLClientRequest<EnumQuery.Result> {
22
22
/* *
23
23
* Query that returns enum value
24
24
*/
25
- public val enumQuery : CustomEnum = CustomEnum .__UNKNOWN_VALUE
25
+ public val enumQuery : CustomEnum = CustomEnum .__UNKNOWN_VALUE ,
26
+ /* *
27
+ * Query that returns other enum value
28
+ */
29
+ public val otherEnumQuery : OtherEnum = OtherEnum .__UNKNOWN_VALUE
26
30
)
27
31
}
Original file line number Diff line number Diff line change
1
+ package com.expediagroup.graphql.generated.enums
2
+
3
+ import kotlinx.serialization.Serializable
4
+
5
+ /* *
6
+ * Other enum description
7
+ */
8
+ @Serializable
9
+ public enum class OtherEnum {
10
+ FIRST ,
11
+ SECOND ,
12
+ /* *
13
+ * This is a default enum value that will be used when attempting to deserialize unknown value.
14
+ */
15
+ __UNKNOWN_VALUE ,
16
+ }
Original file line number Diff line number Diff line change @@ -2,7 +2,6 @@ package com.expediagroup.graphql.generated
2
2
3
3
import com.expediagroup.graphql.client.types.GraphQLClientRequest
4
4
import com.expediagroup.graphql.generated.enums.CustomEnum
5
- import com.expediagroup.graphql.generated.enums.CustomEnum.__UNKNOWN_VALUE
6
5
import com.expediagroup.graphql.generated.firstquery.BasicInterface
7
6
import com.expediagroup.graphql.generated.firstquery.ComplexObject
8
7
import com.expediagroup.graphql.generated.firstquery.ScalarWrapper
Original file line number Diff line number Diff line change @@ -2,7 +2,6 @@ package com.expediagroup.graphql.generated
2
2
3
3
import com.expediagroup.graphql.client.types.GraphQLClientRequest
4
4
import com.expediagroup.graphql.generated.enums.CustomEnum
5
- import com.expediagroup.graphql.generated.enums.CustomEnum.__UNKNOWN_VALUE
6
5
import com.expediagroup.graphql.generated.inputs.ComplexArgumentInput
7
6
import com.expediagroup.graphql.generated.secondquery.BasicInterface
8
7
import com.expediagroup.graphql.generated.secondquery.ComplexObject
Original file line number Diff line number Diff line change @@ -92,6 +92,8 @@ type Query {
92
92
deprecatedQuery : String ! @deprecated (reason : " old query should not be used" )
93
93
"Query that returns enum value"
94
94
enumQuery : CustomEnum !
95
+ "Query that returns other enum value"
96
+ otherEnumQuery : OtherEnum !
95
97
"Query that accepts some input arguments"
96
98
inputObjectQuery (criteria : SimpleArgumentInput ! ): Boolean !
97
99
"Query returning an interface"
@@ -147,6 +149,11 @@ enum CustomEnum {
147
149
"Lowercase enum value"
148
150
four
149
151
}
152
+ "Other enum description"
153
+ enum OtherEnum {
154
+ FIRST ,
155
+ SECOND
156
+ }
150
157
"Custom scalar representing UUID"
151
158
scalar UUID
152
159
"Test input object"
You can’t perform that action at this time.
0 commit comments