@@ -177,8 +177,6 @@ private WebClient.RequestHeadersUriSpec<?> doMethod(String methodName) {
177
177
case RequestMethod .POST -> webClient .post ();
178
178
case RequestMethod .PUT -> webClient .put ();
179
179
case RequestMethod .DELETE -> webClient .delete ();
180
- case RequestMethod .HEAD -> webClient .head ();
181
- case RequestMethod .OPTIONS -> webClient .options ();
182
180
case RequestMethod .PATCH -> webClient .patch ();
183
181
default -> throw new UnsupportedOperationException (
184
182
"#RavenAPIClientMethodInterceptor Unsupported method: " + methodName );
@@ -187,12 +185,14 @@ private WebClient.RequestHeadersUriSpec<?> doMethod(String methodName) {
187
185
188
186
private WebClient .RequestHeadersSpec <?> getUriBuilder (
189
187
String methodName , Object [] arguments , WebClient .RequestHeadersUriSpec <?> client ) {
190
- if (metadata .getApiUrlPositions ().containsKey (methodName )) {
191
- String baseUrl = (String ) arguments [metadata .getApiUrlPositions ().get (methodName )];
192
- return client .uri (baseUrl , uriBuilder -> getUri (uriBuilder , methodName , arguments ));
193
- } else {
194
- return client .uri (uriBuilder -> getUri (uriBuilder , methodName , arguments ));
195
- }
188
+ // TODO: maybe we could develop the dynamic URL feature later, but for now, we will just use the static URL
189
+ // if (metadata.getApiUrlPositions().containsKey(methodName)) {
190
+ // String baseUrl = (String) arguments[metadata.getApiUrlPositions().get(methodName)];
191
+ // return client.uri(baseUrl, uriBuilder -> getUri(uriBuilder, methodName, arguments));
192
+ // } else {
193
+ // return client.uri(uriBuilder -> getUri(uriBuilder, methodName, arguments));
194
+ // }
195
+ return client .uri (uriBuilder -> getUri (uriBuilder , methodName , arguments ));
196
196
}
197
197
198
198
private WebClient .RequestHeadersSpec <?> doHeader (
@@ -212,8 +212,8 @@ private WebClient.RequestHeadersSpec<?> doHeader(
212
212
return spec ;
213
213
}
214
214
215
- private Mono doBody (
216
- WebClient . RequestHeadersSpec <?> client , Method method , String methodName ,
215
+ private < T extends WebClient . RequestHeadersSpec <?>> Mono <? extends WebClient . RequestHeadersSpec <?>> doBody (
216
+ T client , Method method , String methodName ,
217
217
Object [] arguments ) {
218
218
if (client instanceof WebClient .RequestBodySpec bodySpec ) {
219
219
String contentType = metadata .getContentTypes ().get (methodName );
@@ -236,34 +236,36 @@ private Mono doBody(
236
236
return Mono .just (client );
237
237
}
238
238
239
- private Mono doResponse (Mono <WebClient .RequestHeadersSpec <?>> client , String methodName ) {
239
+ private Mono doResponse (Mono <? extends WebClient .RequestHeadersSpec <?>> client , String methodName ) {
240
240
Type type = metadata .getResponseBodyClasses ().get (methodName );
241
241
return handleResponseType (client , type );
242
242
}
243
243
244
- private Mono handleResponseType (Mono <WebClient .RequestHeadersSpec <?>> client , Type type ) {
244
+ private Mono handleResponseType (Mono <? extends WebClient .RequestHeadersSpec <?>> client , Type type ) {
245
245
if (type instanceof ParameterizedType parameterizedType ) {
246
246
return handleParameterizedType (client , parameterizedType );
247
247
} else {
248
248
return client .flatMap (c -> c .retrieve ().bodyToMono ((Class ) type ));
249
249
}
250
250
}
251
251
252
- private Mono handleParameterizedType (Mono <WebClient .RequestHeadersSpec <?>> client ,
252
+ private Mono handleParameterizedType (Mono <? extends WebClient .RequestHeadersSpec <?>> client ,
253
253
ParameterizedType parameterizedType ) {
254
254
if (ResponseEntity .class .equals (parameterizedType .getRawType ())) {
255
255
return handleResponseEntity (client , parameterizedType );
256
256
} else {
257
257
return client .flatMap (
258
- c -> c .retrieve ().bodyToMono (ParameterizedTypeReference .forType (parameterizedType )));
258
+ c -> c .retrieve ().bodyToMono (ParameterizedTypeReference .forType (parameterizedType . getRawType () )));
259
259
}
260
260
}
261
261
262
- private Mono handleResponseEntity (Mono <WebClient .RequestHeadersSpec <?>> client , ParameterizedType parameterizedType ) {
262
+ private Mono handleResponseEntity (Mono <? extends WebClient .RequestHeadersSpec <?>> client ,
263
+ ParameterizedType parameterizedType ) {
263
264
return handleResponseSpec (getResponseEntitySpec (client ), parameterizedType );
264
265
}
265
266
266
- private Mono <WebClient .ResponseSpec > getResponseEntitySpec (Mono <WebClient .RequestHeadersSpec <?>> client ) {
267
+ private Mono <WebClient .ResponseSpec > getResponseEntitySpec (Mono <? extends WebClient .RequestHeadersSpec <
268
+ ?>> client ) {
267
269
// TODO: need to update error handling
268
270
return client .map (spec -> spec .retrieve ().onStatus (HttpStatusCode ::isError ,
269
271
clientResponse -> Mono .empty ()));
@@ -280,7 +282,7 @@ private Mono handleResponseSpec(Mono<WebClient.ResponseSpec> responseSpec, Param
280
282
}
281
283
282
284
private Mono handleListResponseSpec (Mono <WebClient .ResponseSpec > responseSpec , ParameterizedType parameterizedType ) {
283
- return responseSpec .flatMap (respEntity -> respEntity .toEntityList (
285
+ return responseSpec .flatMap (respEntity -> respEntity .toEntity (
284
286
ParameterizedTypeReference .forType (
285
287
parameterizedType .getActualTypeArguments ()[0 ])));
286
288
}
0 commit comments