1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.bremersee.apiclient.webflux.contract.spring;
18
19 import org.bremersee.apiclient.webflux.InvocationParameter;
20 import org.springframework.core.io.Resource;
21 import org.springframework.web.reactive.function.BodyInserters;
22 import org.springframework.web.reactive.function.client.WebClient.RequestBodyUriSpec;
23 import org.springframework.web.reactive.function.client.WebClient.RequestHeadersUriSpec;
24
25
26
27
28
29
30 public class ResourceInserter extends SingleBodyInserter<Resource> {
31
32 @Override
33 protected boolean isPossibleBodyValue(InvocationParameter invocationParameter) {
34 return invocationParameter.getValue() instanceof Resource;
35 }
36
37 @Override
38 protected Resource mapBody(InvocationParameter invocationParameter) {
39
40 return (Resource) invocationParameter.getValue();
41 }
42
43 @Override
44 protected RequestHeadersUriSpec<?> insert(
45 Resource body,
46 RequestBodyUriSpec requestBodyUriSpec) {
47
48
49 return (RequestHeadersUriSpec) requestBodyUriSpec.body(BodyInserters.fromResource(body));
50 }
51
52 }