Skip to content

Commit 24c1968

Browse files
authored
cask fix for response encoding (#18375)
1 parent 359ff9e commit 24c1968

4 files changed

Lines changed: 37 additions & 30 deletions

File tree

modules/openapi-generator/src/main/resources/scala-cask/apiRoutes.mustache

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,12 @@ class {{classname}}Routes(service : {{classname}}Service) extends cask.Routes {
4646

4747
result match {
4848
case Left(error) => cask.Response(error, 500)
49-
{{#vendorExtensions.x-has-response-types}}
50-
{{#responses}}
51-
{{#dataType}}
52-
case Right(value : {{dataType}}) => cask.Response(data = write(value), {{code}}, headers = Seq("Content-Type" -> "application/json"))
53-
{{/dataType}}
54-
{{/responses}}
55-
{{/vendorExtensions.x-has-response-types}}
56-
{{^vendorExtensions.x-has-response-types}}
57-
case Right(_) => cask.Response("", 200)
58-
{{/vendorExtensions.x-has-response-types}}
49+
{{#responses}}
50+
{{#dataType}}
51+
case Right(value : {{dataType}}) => cask.Response(data = write(value), {{code}}, headers = Seq("Content-Type" -> "application/json"))
52+
{{/dataType}}
53+
{{/responses}}
54+
case Right(other) => cask.Response(s"$other", 200)
5955
}
6056
}
6157
{{/operation}}

samples/server/petstore/scala-cask/src/main/scala/sample/cask/api/PetRoutes.scala

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ class PetRoutes(service : PetService) extends cask.Routes {
6767

6868
result match {
6969
case Left(error) => cask.Response(error, 500)
70-
case Right(_) => cask.Response("", 200)
70+
case Right(value : Pet) => cask.Response(data = write(value), 200, headers = Seq("Content-Type" -> "application/json"))
71+
case Right(other) => cask.Response(s"$other", 200)
7172
}
7273
}
7374
/** Deletes a pet
@@ -87,7 +88,7 @@ class PetRoutes(service : PetService) extends cask.Routes {
8788

8889
result match {
8990
case Left(error) => cask.Response(error, 500)
90-
case Right(_) => cask.Response("", 200)
91+
case Right(other) => cask.Response(s"$other", 200)
9192
}
9293
}
9394
/** Finds Pets by status
@@ -105,7 +106,8 @@ class PetRoutes(service : PetService) extends cask.Routes {
105106

106107
result match {
107108
case Left(error) => cask.Response(error, 500)
108-
case Right(_) => cask.Response("", 200)
109+
case Right(value : List[Pet]) => cask.Response(data = write(value), 200, headers = Seq("Content-Type" -> "application/json"))
110+
case Right(other) => cask.Response(s"$other", 200)
109111
}
110112
}
111113
/** Finds Pets by tags
@@ -123,7 +125,8 @@ class PetRoutes(service : PetService) extends cask.Routes {
123125

124126
result match {
125127
case Left(error) => cask.Response(error, 500)
126-
case Right(_) => cask.Response("", 200)
128+
case Right(value : List[Pet]) => cask.Response(data = write(value), 200, headers = Seq("Content-Type" -> "application/json"))
129+
case Right(other) => cask.Response(s"$other", 200)
127130
}
128131
}
129132
/** Find pet by ID
@@ -142,7 +145,8 @@ class PetRoutes(service : PetService) extends cask.Routes {
142145

143146
result match {
144147
case Left(error) => cask.Response(error, 500)
145-
case Right(_) => cask.Response("", 200)
148+
case Right(value : Pet) => cask.Response(data = write(value), 200, headers = Seq("Content-Type" -> "application/json"))
149+
case Right(other) => cask.Response(s"$other", 200)
146150
}
147151
}
148152
/** Update an existing pet
@@ -162,7 +166,8 @@ class PetRoutes(service : PetService) extends cask.Routes {
162166

163167
result match {
164168
case Left(error) => cask.Response(error, 500)
165-
case Right(_) => cask.Response("", 200)
169+
case Right(value : Pet) => cask.Response(data = write(value), 200, headers = Seq("Content-Type" -> "application/json"))
170+
case Right(other) => cask.Response(s"$other", 200)
166171
}
167172
}
168173
/** Updates a pet in the store with form data
@@ -183,7 +188,7 @@ class PetRoutes(service : PetService) extends cask.Routes {
183188

184189
result match {
185190
case Left(error) => cask.Response(error, 500)
186-
case Right(_) => cask.Response("", 200)
191+
case Right(other) => cask.Response(s"$other", 200)
187192
}
188193
}
189194
/** uploads an image
@@ -204,7 +209,8 @@ class PetRoutes(service : PetService) extends cask.Routes {
204209

205210
result match {
206211
case Left(error) => cask.Response(error, 500)
207-
case Right(_) => cask.Response("", 200)
212+
case Right(value : ApiResponse) => cask.Response(data = write(value), 200, headers = Seq("Content-Type" -> "application/json"))
213+
case Right(other) => cask.Response(s"$other", 200)
208214
}
209215
}
210216

samples/server/petstore/scala-cask/src/main/scala/sample/cask/api/StoreRoutes.scala

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class StoreRoutes(service : StoreService) extends cask.Routes {
4343

4444
result match {
4545
case Left(error) => cask.Response(error, 500)
46-
case Right(_) => cask.Response("", 200)
46+
case Right(other) => cask.Response(s"$other", 200)
4747
}
4848
}
4949
/** Returns pet inventories by status
@@ -61,7 +61,8 @@ class StoreRoutes(service : StoreService) extends cask.Routes {
6161

6262
result match {
6363
case Left(error) => cask.Response(error, 500)
64-
case Right(_) => cask.Response("", 200)
64+
case Right(value : Map[String, Int]) => cask.Response(data = write(value), 200, headers = Seq("Content-Type" -> "application/json"))
65+
case Right(other) => cask.Response(s"$other", 200)
6566
}
6667
}
6768
/** Find purchase order by ID
@@ -79,7 +80,8 @@ class StoreRoutes(service : StoreService) extends cask.Routes {
7980

8081
result match {
8182
case Left(error) => cask.Response(error, 500)
82-
case Right(_) => cask.Response("", 200)
83+
case Right(value : Order) => cask.Response(data = write(value), 200, headers = Seq("Content-Type" -> "application/json"))
84+
case Right(other) => cask.Response(s"$other", 200)
8385
}
8486
}
8587
/** Place an order for a pet
@@ -98,7 +100,8 @@ class StoreRoutes(service : StoreService) extends cask.Routes {
98100

99101
result match {
100102
case Left(error) => cask.Response(error, 500)
101-
case Right(_) => cask.Response("", 200)
103+
case Right(value : Order) => cask.Response(data = write(value), 200, headers = Seq("Content-Type" -> "application/json"))
104+
case Right(other) => cask.Response(s"$other", 200)
102105
}
103106
}
104107

samples/server/petstore/scala-cask/src/main/scala/sample/cask/api/UserRoutes.scala

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class UserRoutes(service : UserService) extends cask.Routes {
5656

5757
result match {
5858
case Left(error) => cask.Response(error, 500)
59-
case Right(_) => cask.Response("", 200)
59+
case Right(other) => cask.Response(s"$other", 200)
6060
}
6161
}
6262
/** Creates list of users with given input array
@@ -75,7 +75,7 @@ class UserRoutes(service : UserService) extends cask.Routes {
7575

7676
result match {
7777
case Left(error) => cask.Response(error, 500)
78-
case Right(_) => cask.Response("", 200)
78+
case Right(other) => cask.Response(s"$other", 200)
7979
}
8080
}
8181
/** Creates list of users with given input array
@@ -94,7 +94,7 @@ class UserRoutes(service : UserService) extends cask.Routes {
9494

9595
result match {
9696
case Left(error) => cask.Response(error, 500)
97-
case Right(_) => cask.Response("", 200)
97+
case Right(other) => cask.Response(s"$other", 200)
9898
}
9999
}
100100
/** Delete user
@@ -113,7 +113,7 @@ class UserRoutes(service : UserService) extends cask.Routes {
113113

114114
result match {
115115
case Left(error) => cask.Response(error, 500)
116-
case Right(_) => cask.Response("", 200)
116+
case Right(other) => cask.Response(s"$other", 200)
117117
}
118118
}
119119
/** Get user by user name
@@ -131,7 +131,8 @@ class UserRoutes(service : UserService) extends cask.Routes {
131131

132132
result match {
133133
case Left(error) => cask.Response(error, 500)
134-
case Right(_) => cask.Response("", 200)
134+
case Right(value : User) => cask.Response(data = write(value), 200, headers = Seq("Content-Type" -> "application/json"))
135+
case Right(other) => cask.Response(s"$other", 200)
135136
}
136137
}
137138
/** Logs user into the system
@@ -148,7 +149,8 @@ class UserRoutes(service : UserService) extends cask.Routes {
148149

149150
result match {
150151
case Left(error) => cask.Response(error, 500)
151-
case Right(_) => cask.Response("", 200)
152+
case Right(value : String) => cask.Response(data = write(value), 200, headers = Seq("Content-Type" -> "application/json"))
153+
case Right(other) => cask.Response(s"$other", 200)
152154
}
153155
}
154156
/** Logs out current logged in user session
@@ -166,7 +168,7 @@ class UserRoutes(service : UserService) extends cask.Routes {
166168

167169
result match {
168170
case Left(error) => cask.Response(error, 500)
169-
case Right(_) => cask.Response("", 200)
171+
case Right(other) => cask.Response(s"$other", 200)
170172
}
171173
}
172174
/** Updated user
@@ -187,7 +189,7 @@ class UserRoutes(service : UserService) extends cask.Routes {
187189

188190
result match {
189191
case Left(error) => cask.Response(error, 500)
190-
case Right(_) => cask.Response("", 200)
192+
case Right(other) => cask.Response(s"$other", 200)
191193
}
192194
}
193195

0 commit comments

Comments
 (0)