Skip to content

Commit bbc9ba2

Browse files
authored
rpc (fix): Fix generated client interface (#3830)
1 parent 0ee8b7a commit bbc9ba2

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

airframe-http-codegen/src/main/scala/wvlet/airframe/http/codegen/HttpClientIR.scala

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,13 @@ object HttpClientIR extends LogSupport {
175175
) extends ClientCodeIR {
176176
def typeArgString =
177177
typeArgs
178+
.map(arg =>
179+
if (arg.rawType.isAssignableFrom(classOf[Rx[_]]) && arg.typeArgs.size > 0)
180+
// Extract Rx element type
181+
arg.typeArgs(0)
182+
else
183+
arg
184+
)
178185
.map(arg => HttpClientGenerator.fullTypeNameOf(arg))
179186
.mkString(", ")
180187
def clientMethodName = {

airframe-http-codegen/src/main/scala/wvlet/airframe/http/codegen/client/RPCClientGenerator.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ object RPCClientGenerator extends HttpClientGenerator {
164164
m.httpMethod match {
165165
case HttpMethod.GET =>
166166
s"""def ${m.name}(${inputArgs.mkString(", ")}): ${returnType} = {
167-
| client.readAs[${m.returnType.fullTypeName}](Http.GET(s"${m.path}"))
167+
| client.readAs[${returnElementType}](Http.GET(s"${m.path}"))
168168
|}""".stripMargin
169169
case _ =>
170170
val args = Seq.newBuilder[String]

0 commit comments

Comments
 (0)