Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@ data class ${className}(
<#list fields as field>
<#if field.type?ends_with("?")>
if (${field.name} != null) {
joiner.add("${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name}))
joiner.add("${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name}<#if field.serializeUsingObjectMapper>, true</#if>))
}
<#else>
joiner.add("${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name}))
joiner.add("${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name}<#if field.serializeUsingObjectMapper>, true</#if>))
</#if>
</#list>
return joiner.toString()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ case class ${className}(
override def toString(): String = {<#--There is no Option[Seq[T]], Format is not supported in the generated code, so it is very difficult to write template for this format.-->
<#if fields?has_content>
scala.Seq(<#list fields as field><#assign getMethod = ".get"><#assign asJava = ".asJava">
<#if MapperUtil.isScalaPrimitive(field.type)>"${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name})<#if field_has_next>,</#if><#elseif MapperUtil.isScalaOption(field.type)>if (${field.name}.isDefined) "${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name}${getMethod}) else ""<#if field_has_next>,</#if><#else>if (${field.name} != null)<#if MapperUtil.isScalaCollection(field.type)> "${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name}${asJava}) else ""<#if field_has_next>,</#if><#else> "${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name}) else ""<#if field_has_next>,</#if></#if></#if></#list>
).filter(_ != "").mkString("(", ",", ")")
<#if MapperUtil.isScalaPrimitive(field.type)>"${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name}<#if field.serializeUsingObjectMapper>, true</#if>)<#if field_has_next>,</#if><#elseif MapperUtil.isScalaOption(field.type)>if (${field.name}.isDefined) "${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name}${getMethod}<#if field.serializeUsingObjectMapper>, true</#if>) else ""<#if field_has_next>,</#if><#else>if (${field.name} != null)<#if MapperUtil.isScalaCollection(field.type)> "${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name}${asJava}<#if field.serializeUsingObjectMapper>, true</#if>) else ""<#if field_has_next>,</#if><#else> "${field.originalName}: " + GraphQLRequestSerializer.getEntry(${field.name}<#if field.serializeUsingObjectMapper>, true</#if>) else ""<#if field_has_next>,</#if></#if></#if></#list>
).filter(_ != "").mkString("(", ",", ")")<#--Copy it out and modify the code to one line after modification.-->
<#else>
"()"
</#if>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import java.util.Objects;

import static com.kobylynskyi.graphql.codegen.TestUtils.assertSameTrimmedContent;
import static java.util.Collections.singleton;
import static java.util.Collections.singletonList;
import static java.util.stream.Collectors.toList;
import static org.junit.jupiter.api.Assertions.assertEquals;
Expand All @@ -39,19 +40,20 @@ void generate() throws Exception {
mappingConfig.setGenerateToString(true);
mappingConfig.setGenerateModelsForRootTypes(true);
mappingConfig.setApiNameSuffix("API");

mappingConfig.putCustomTypeMappingIfAbsent("DateTime", "java.time.ZonedDateTime");
mappingConfig.setUseObjectMapperForRequestSerialization(singleton("DateTime"));
new KotlinGraphQLCodegen(singletonList("src/test/resources/schemas/kt/restricted-words.graphqls"),
outputBuildDir, mappingConfig, TestUtils.getStaticGeneratedInfo()).generate();

File[] files = Objects.requireNonNull(outputJavaClassesDir.listFiles());
List<?> filters = Arrays
.asList("Char.kt", "CharResponseProjection.kt", "FunQueryRequest.kt", "FunQueryResponse.kt",
"QueryFunParametrizedInput.kt",
"QueryFunParametrizedInput.kt", "QueryPrivateParametrizedInput.kt",
"Super.kt", "TestEnum.kt", "WhenQueryAPI.kt");
List<String> generatedFileNames = Arrays.stream(files).map(File::getName).filter(f -> filters.contains(f))
.sorted().collect(toList());
assertEquals(Arrays.asList("Char.kt", "CharResponseProjection.kt", "FunQueryRequest.kt", "FunQueryResponse.kt",
"QueryFunParametrizedInput.kt",
"QueryFunParametrizedInput.kt", "QueryPrivateParametrizedInput.kt",
"Super.kt", "TestEnum.kt", "WhenQueryAPI.kt"), generatedFileNames);

for (File file : files) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import static java.util.stream.Collectors.toList;
import static org.junit.jupiter.api.Assertions.assertEquals;

class GraphQLCodegenReactorToStringTest {
class GraphQLCodegenRestrictedWordsAndToStringTest {

private final MappingConfig mappingConfig = new MappingConfig();

Expand Down Expand Up @@ -73,7 +73,7 @@ void generate_SetGenerateClient_True() throws Exception {
mappingConfig.setGenerateApis(true);
mappingConfig.setGenerateModelsForRootTypes(true);
mappingConfig.setApiNameSuffix("API");

mappingConfig.setUseObjectMapperForRequestSerialization(singleton("DateTime"));
new ScalaGraphQLCodegen(singletonList("src/test/resources/schemas/scala/restricted-words.graphqls"),
outputBuildDir, mappingConfig, TestUtils.getStaticGeneratedInfo()).generate();

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.kobylynskyi.graphql.codegen.prot

import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLParametrizedInput
import com.kobylynskyi.graphql.codegen.model.graphql.GraphQLRequestSerializer
import java.util.StringJoiner
/**
* Parametrized input for field private in type Query
*/
@javax.annotation.Generated(
value = ["com.kobylynskyi.graphql.codegen.GraphQLCodegen"],
date = "2020-12-31T23:59:59-0500"
)
data class QueryPrivateParametrizedInput(
val int: Int?,
val new: String?,
val enum: TestEnum? = TestEnum.long,
val createdAfter: java.time.ZonedDateTime?
) : GraphQLParametrizedInput {

override fun toString(): String {
val joiner = StringJoiner(", ", "( ", " )")
if (int != null) {
joiner.add("int: " + GraphQLRequestSerializer.getEntry(int))
}
if (new != null) {
joiner.add("new: " + GraphQLRequestSerializer.getEntry(new))
}
if (enum != null) {
joiner.add("enum: " + GraphQLRequestSerializer.getEntry(enum))
}
if (createdAfter != null) {
joiner.add("createdAfter: " + GraphQLRequestSerializer.getEntry(createdAfter, true))
}
return joiner.toString()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ data class Super(
val `is`: String?,
val `in`: Char?,
val Int: Super?,
val date: String?
val date: java.time.ZonedDateTime?
) {

companion object {
Expand Down Expand Up @@ -42,7 +42,7 @@ data class Super(
private var `is`: String? = null
private var `in`: Char? = null
private var Int: Super? = null
private var date: String? = null
private var date: java.time.ZonedDateTime? = null

@Deprecated(message = "We have decided that this is not canon")
fun setIs(`is`: String?): Builder {
Expand All @@ -60,7 +60,7 @@ data class Super(
return this
}

fun setDate(date: String?): Builder {
fun setDate(date: java.time.ZonedDateTime?): Builder {
this.date = date
return this
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ case class QueryPrivateParametrizedInput(
seq1: scala.Seq[scala.Option[Int]],
seq2: scala.Seq[Int],
`new`: String,
enum: TestEnum = TestEnum.long
enum: TestEnum = TestEnum.long,
createdAfter: java.time.ZonedDateTime
) extends GraphQLParametrizedInput {

override def toString(): String = {
Expand All @@ -28,7 +29,8 @@ case class QueryPrivateParametrizedInput(
if (seq1 != null) "seq1: " + GraphQLRequestSerializer.getEntry(seq1.asJava) else "",
if (seq2 != null) "seq2: " + GraphQLRequestSerializer.getEntry(seq2.asJava) else "",
if (`new` != null) "new: " + GraphQLRequestSerializer.getEntry(`new`) else "",
if (enum != null) "enum: " + GraphQLRequestSerializer.getEntry(enum) else ""
if (enum != null) "enum: " + GraphQLRequestSerializer.getEntry(enum) else "",
if (createdAfter != null) "createdAfter: " + GraphQLRequestSerializer.getEntry(createdAfter, true) else ""
).filter(_ != "").mkString("(", ",", ")")
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ case class Synchronized(
"private: " + GraphQLRequestSerializer.getEntry(`private`),
"native: " + GraphQLRequestSerializer.getEntry(native),
"that: " + GraphQLRequestSerializer.getEntry(that),
if (enum != null) "enum: " + GraphQLRequestSerializer.getEntry(enum, true) else "",
if (enum != null) "enum: " + GraphQLRequestSerializer.getEntry(enum) else "",
if (Synchronized != null) "Synchronized: " + GraphQLRequestSerializer.getEntry(Synchronized) else "",
if (date != null) "date: " + GraphQLRequestSerializer.getEntry(date) else ""
if (date != null) "date: " + GraphQLRequestSerializer.getEntry(date, true) else ""
).filter(_ != "").mkString("{", ",", "}")
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/test/resources/schemas/kt/restricted-words.graphqls
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ schema {

type Query {
open: String
private(int: Int, new: String, enum: TestEnum = long): super
private(int: Int, new: String, enum: TestEnum = long, createdAfter: DateTime): super
when(final: [char]): ID
fun(final: Int): char
super: String
Expand Down
2 changes: 1 addition & 1 deletion src/test/resources/schemas/scala/restricted-words.graphqls
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ schema {

type Query {
native: String
private(int: Int!, intOpt:Int, seq1:[Int], seq2:[Int!], new: String, enum: TestEnum = long): Synchronized
private(int: Int!, intOpt:Int, seq1:[Int], seq2:[Int!], new: String, enum: TestEnum = long, createdAfter: DateTime): Synchronized
case(final: [char]): ID
int(final: Int): char
super: String
Expand Down