Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦境迷离
Graphql Java Codegen
提交
25ef1740
G
Graphql Java Codegen
项目概览
梦境迷离
/
Graphql Java Codegen
10 个月 前同步成功
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Graphql Java Codegen
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
25ef1740
编写于
3月 21, 2021
作者:
梦境迷离
提交者:
GitHub
3月 21, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Kotlin, Scala: Fix Parametrized Input serialization #566 (#605)
上级
54945386
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
58 addition
and
18 deletion
+58
-18
src/main/resources/templates/kotlin-lang/kotlinClassGraphqlParametrizedInput.ftl
...lates/kotlin-lang/kotlinClassGraphqlParametrizedInput.ftl
+2
-2
src/main/resources/templates/scala-lang/scalaClassGraphqlParametrizedInput.ftl
...mplates/scala-lang/scalaClassGraphqlParametrizedInput.ftl
+2
-2
src/test/java/com/kobylynskyi/graphql/codegen/kotlin/GraphQLCodegenRestrictedWordsAndParameterInputTest.java
...n/GraphQLCodegenRestrictedWordsAndParameterInputTest.java
+5
-3
src/test/java/com/kobylynskyi/graphql/codegen/scala/GraphQLCodegenRestrictedWordsAndToStringTest.java
...n/scala/GraphQLCodegenRestrictedWordsAndToStringTest.java
+2
-2
src/test/resources/expected-classes/kt/restricted-words/QueryPrivateParametrizedInput.kt.txt
.../kt/restricted-words/QueryPrivateParametrizedInput.kt.txt
+36
-0
src/test/resources/expected-classes/kt/restricted-words/Super.kt.txt
...sources/expected-classes/kt/restricted-words/Super.kt.txt
+3
-3
src/test/resources/expected-classes/scala/tostring/QueryPrivateParametrizedInput.scala.txt
...es/scala/tostring/QueryPrivateParametrizedInput.scala.txt
+4
-2
src/test/resources/expected-classes/scala/tostring/Synchronized.scala.txt
...es/expected-classes/scala/tostring/Synchronized.scala.txt
+2
-2
src/test/resources/schemas/kt/restricted-words.graphqls
src/test/resources/schemas/kt/restricted-words.graphqls
+1
-1
src/test/resources/schemas/scala/restricted-words.graphqls
src/test/resources/schemas/scala/restricted-words.graphqls
+1
-1
未找到文件。
src/main/resources/templates/kotlin-lang/kotlinClassGraphqlParametrizedInput.ftl
浏览文件 @
25ef1740
...
...
@@ -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
()
...
...
src/main/resources/templates/scala-lang/scalaClassGraphqlParametrizedInput.ftl
浏览文件 @
25ef1740
...
...
@@ -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
>
...
...
src/test/java/com/kobylynskyi/graphql/codegen/kotlin/GraphQLCodegenRestrictedWordsAndParameterInputTest.java
浏览文件 @
25ef1740
...
...
@@ -13,6 +13,7 @@ import java.util.List;
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
;
...
...
@@ -39,19 +40,20 @@ class GraphQLCodegenRestrictedWordsAndParameterInputTest {
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
)
{
...
...
src/test/java/com/kobylynskyi/graphql/codegen/scala/GraphQLCodegenRe
actor
ToStringTest.java
→
src/test/java/com/kobylynskyi/graphql/codegen/scala/GraphQLCodegenRe
strictedWordsAnd
ToStringTest.java
浏览文件 @
25ef1740
...
...
@@ -19,7 +19,7 @@ import static java.util.Collections.singletonList;
import
static
java
.
util
.
stream
.
Collectors
.
toList
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertEquals
;
class
GraphQLCodegenRe
actor
ToStringTest
{
class
GraphQLCodegenRe
strictedWordsAnd
ToStringTest
{
private
final
MappingConfig
mappingConfig
=
new
MappingConfig
();
...
...
@@ -73,7 +73,7 @@ class GraphQLCodegenReactorToStringTest {
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
();
...
...
src/test/resources/expected-classes/kt/restricted-words/QueryPrivateParametrizedInput.kt.txt
0 → 100644
浏览文件 @
25ef1740
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()
}
}
\ No newline at end of file
src/test/resources/expected-classes/kt/restricted-words/Super.kt.txt
浏览文件 @
25ef1740
...
...
@@ -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 {
...
...
@@ -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 {
...
...
@@ -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
}
...
...
src/test/resources/expected-classes/scala/tostring/QueryPrivateParametrizedInput.scala.txt
浏览文件 @
25ef1740
...
...
@@ -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 = {
...
...
@@ -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("(", ",", ")")
}
...
...
src/test/resources/expected-classes/scala/tostring/Synchronized.scala.txt
浏览文件 @
25ef1740
...
...
@@ -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("{", ",", "}")
}
}
...
...
src/test/resources/schemas/kt/restricted-words.graphqls
浏览文件 @
25ef1740
...
...
@@ -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
...
...
src/test/resources/schemas/scala/restricted-words.graphqls
浏览文件 @
25ef1740
...
...
@@ -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
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录