@@ -63,11 +63,14 @@ class PetRoutes(service : PetService[Try]) extends cask.Routes {
63
63
val result = for {
64
64
petJson <- Parsed .fromTry(request.bodyAsJson)
65
65
petData <- Parsed .eval(PetData .fromJson(petJson)) /* not array or map */
66
- pet <- Parsed .fromTry(petData .validated(failFast))
66
+ pet <- Parsed .fromTry(PetData .validated(petData, failFast))
67
67
resultTry <- Parsed .eval(service.addPet(pet))
68
68
result <- Parsed .fromTry(resultTry)
69
69
} yield result
70
70
71
+ // this is required for union (oneOf) types
72
+ import Pet .{given , * }
73
+
71
74
(result : @ unchecked) match {
72
75
case Left (error) => cask.Response (error, 500 )
73
76
case Right (value : Pet ) => cask.Response (data = write(value), 200 , headers = Seq (" Content-Type" -> " application/json" ))
@@ -90,6 +93,7 @@ class PetRoutes(service : PetService[Try]) extends cask.Routes {
90
93
result <- Parsed .fromTry(resultTry)
91
94
} yield result
92
95
96
+
93
97
(result : @ unchecked) match {
94
98
case Left (error) => cask.Response (error, 500 )
95
99
case Right (other) => cask.Response (s " $other" , 200 )
@@ -109,6 +113,7 @@ class PetRoutes(service : PetService[Try]) extends cask.Routes {
109
113
result <- Parsed .fromTry(resultTry)
110
114
} yield result
111
115
116
+
112
117
(result : @ unchecked) match {
113
118
case Left (error) => cask.Response (error, 500 )
114
119
case Right (value : List [Pet ]) => cask.Response (data = write(value), 200 , headers = Seq (" Content-Type" -> " application/json" ))
@@ -129,6 +134,7 @@ class PetRoutes(service : PetService[Try]) extends cask.Routes {
129
134
result <- Parsed .fromTry(resultTry)
130
135
} yield result
131
136
137
+
132
138
(result : @ unchecked) match {
133
139
case Left (error) => cask.Response (error, 500 )
134
140
case Right (value : List [Pet ]) => cask.Response (data = write(value), 200 , headers = Seq (" Content-Type" -> " application/json" ))
@@ -150,6 +156,9 @@ class PetRoutes(service : PetService[Try]) extends cask.Routes {
150
156
result <- Parsed .fromTry(resultTry)
151
157
} yield result
152
158
159
+ // this is required for union (oneOf) types
160
+ import Pet .{given , * }
161
+
153
162
(result : @ unchecked) match {
154
163
case Left (error) => cask.Response (error, 500 )
155
164
case Right (value : Pet ) => cask.Response (data = write(value), 200 , headers = Seq (" Content-Type" -> " application/json" ))
@@ -168,11 +177,14 @@ class PetRoutes(service : PetService[Try]) extends cask.Routes {
168
177
val result = for {
169
178
petJson <- Parsed .fromTry(request.bodyAsJson)
170
179
petData <- Parsed .eval(PetData .fromJson(petJson)) /* not array or map */
171
- pet <- Parsed .fromTry(petData .validated(failFast))
180
+ pet <- Parsed .fromTry(PetData .validated(petData, failFast))
172
181
resultTry <- Parsed .eval(service.updatePet(pet))
173
182
result <- Parsed .fromTry(resultTry)
174
183
} yield result
175
184
185
+ // this is required for union (oneOf) types
186
+ import Pet .{given , * }
187
+
176
188
(result : @ unchecked) match {
177
189
case Left (error) => cask.Response (error, 500 )
178
190
case Right (value : Pet ) => cask.Response (data = write(value), 200 , headers = Seq (" Content-Type" -> " application/json" ))
@@ -196,6 +208,7 @@ class PetRoutes(service : PetService[Try]) extends cask.Routes {
196
208
result <- Parsed .fromTry(resultTry)
197
209
} yield result
198
210
211
+
199
212
(result : @ unchecked) match {
200
213
case Left (error) => cask.Response (error, 500 )
201
214
case Right (other) => cask.Response (s " $other" , 200 )
@@ -218,6 +231,9 @@ class PetRoutes(service : PetService[Try]) extends cask.Routes {
218
231
result <- Parsed .fromTry(resultTry)
219
232
} yield result
220
233
234
+ // this is required for union (oneOf) types
235
+ import ApiResponse .{given , * }
236
+
221
237
(result : @ unchecked) match {
222
238
case Left (error) => cask.Response (error, 500 )
223
239
case Right (value : ApiResponse ) => cask.Response (data = write(value), 200 , headers = Seq (" Content-Type" -> " application/json" ))
0 commit comments