@@ -51,6 +51,16 @@ protected AbstractClientV3Operations(ConnectionContext connectionContext, Mono<S
5151 super (connectionContext , root , tokenProvider , requestTags );
5252 }
5353
54+ protected static String extractJobId (HttpClientResponse response ) {
55+ String locationHeader = response .responseHeaders ().get (HttpHeaderNames .LOCATION );
56+ if (locationHeader == null ) {
57+ return null ;
58+ }
59+
60+ List <String > pathSegments = UriComponentsBuilder .fromUriString (locationHeader ).build ().getPathSegments ();
61+ return pathSegments .get (pathSegments .size () - 1 );
62+ }
63+
5464 @ Override
5565 protected Mono <Operator > createOperator () {
5666 return super .createOperator ().map (this ::attachErrorPayloadMapper );
@@ -66,23 +76,23 @@ protected final Mono<String> delete(Object requestPayload, Function<UriComponent
6676 .flatMap (response -> Mono .justOrEmpty (extractJobId (response )));
6777 }
6878
69- protected final <T > Mono <HttpClientResponseWithParsedBody <T >> deleteWithResponse (Object requestPayload , Class <T > responseType ,
70- Function <UriComponentsBuilder , UriComponentsBuilder > uriTransformer ) {
79+ protected final <T > Mono <T > delete (Object requestPayload , Class <T > responseType , Function <UriComponentsBuilder , UriComponentsBuilder > uriTransformer ) {
7180 return createOperator ()
7281 .flatMap (operator -> operator .delete ()
7382 .uri (queryTransformer (requestPayload ).andThen (uriTransformer ))
7483 .send (requestPayload )
7584 .response ()
76- .parseBodyWithResponse (responseType ));
85+ .parseBody (responseType ));
7786 }
7887
79- protected final <T > Mono <T > delete (Object requestPayload , Class <T > responseType , Function <UriComponentsBuilder , UriComponentsBuilder > uriTransformer ) {
88+ protected final <T > Mono <HttpClientResponseWithParsedBody <T >> deleteWithResponse (Object requestPayload , Class <T > responseType ,
89+ Function <UriComponentsBuilder , UriComponentsBuilder > uriTransformer ) {
8090 return createOperator ()
8191 .flatMap (operator -> operator .delete ()
8292 .uri (queryTransformer (requestPayload ).andThen (uriTransformer ))
8393 .send (requestPayload )
8494 .response ()
85- .parseBody (responseType ));
95+ .parseBodyWithResponse (responseType ));
8696 }
8797
8898 protected final <T > Flux <T > get (Object requestPayload , Function <UriComponentsBuilder , UriComponentsBuilder > uriTransformer , Function <ByteBufFlux , Flux <T >> bodyTransformer ) {
@@ -112,7 +122,7 @@ protected final <T> Mono<T> patch(Object requestPayload, Class<T> responseType,
112122 }
113123
114124 protected final <T > Mono <HttpClientResponseWithParsedBody <T >> patchWithResponse (Object requestPayload , Class <T > responseType ,
115- Function <UriComponentsBuilder , UriComponentsBuilder > uriTransformer ) {
125+ Function <UriComponentsBuilder , UriComponentsBuilder > uriTransformer ) {
116126 return createOperator ()
117127 .flatMap (operator -> operator .patch ()
118128 .uri (queryTransformer (requestPayload ).andThen (uriTransformer ))
@@ -141,16 +151,18 @@ protected <T> Mono<T> post(Object requestPayload, Class<T> responseType, Functio
141151 .parseBody (responseType ));
142152 }
143153
144- protected final <T > Mono <HttpClientResponseWithParsedBody <T >> postWithResponse (Object requestPayload , Class <T > responseType ,
145- Function <UriComponentsBuilder , UriComponentsBuilder > uriTransformer ) {
154+ protected final Mono <String > post (Object requestPayload , Function <UriComponentsBuilder , UriComponentsBuilder > uriTransformer ) {
146155 return createOperator ()
147156 .flatMap (operator -> operator .post ()
148157 .uri (queryTransformer (requestPayload ).andThen (uriTransformer ))
149158 .send (requestPayload )
150159 .response ()
151- .parseBodyWithResponse (responseType ));
160+ .get ())
161+ .flatMap (response -> Mono .justOrEmpty (extractJobId (response )));
152162 }
153- protected <T > Mono <HttpClientResponseWithParsedBody <T >> postRawWithResponse (byte [] requestPayload , String contentType , Class <T > responseType , Function <UriComponentsBuilder , UriComponentsBuilder > uriTransformer ) {
163+
164+ protected <T > Mono <HttpClientResponseWithParsedBody <T >> postRawWithResponse (byte [] requestPayload , String contentType , Class <T > responseType , Function <UriComponentsBuilder ,
165+ UriComponentsBuilder > uriTransformer ) {
154166 return createOperator ()
155167 .flatMap (operator -> operator .post ()
156168 .uri (queryTransformer (requestPayload ).andThen (uriTransformer ))
@@ -166,14 +178,14 @@ protected <T> Mono<HttpClientResponseWithParsedBody<T>> postRawWithResponse(byte
166178 .parseBodyWithResponse (responseType ));
167179 }
168180
169- protected final Mono <String > post (Object requestPayload , Function <UriComponentsBuilder , UriComponentsBuilder > uriTransformer ) {
181+ protected final <T > Mono <HttpClientResponseWithParsedBody <T >> postWithResponse (Object requestPayload , Class <T > responseType ,
182+ Function <UriComponentsBuilder , UriComponentsBuilder > uriTransformer ) {
170183 return createOperator ()
171184 .flatMap (operator -> operator .post ()
172185 .uri (queryTransformer (requestPayload ).andThen (uriTransformer ))
173186 .send (requestPayload )
174187 .response ()
175- .get ())
176- .flatMap (response -> Mono .justOrEmpty (extractJobId (response )));
188+ .parseBodyWithResponse (responseType ));
177189 }
178190
179191 protected final <T > Mono <T > put (Object requestPayload , Class <T > responseType , Function <UriComponentsBuilder , UriComponentsBuilder > uriTransformer ) {
@@ -185,16 +197,6 @@ protected final <T> Mono<T> put(Object requestPayload, Class<T> responseType, Fu
185197 .parseBody (responseType ));
186198 }
187199
188- protected static String extractJobId (HttpClientResponse response ) {
189- String locationHeader = response .responseHeaders ().get (HttpHeaderNames .LOCATION );
190- if (locationHeader == null ) {
191- return null ;
192- }
193-
194- List <String > pathSegments = UriComponentsBuilder .fromUriString (locationHeader ).build ().getPathSegments ();
195- return pathSegments .get (pathSegments .size () - 1 );
196- }
197-
198200 private Operator attachErrorPayloadMapper (Operator operator ) {
199201 return operator .withErrorPayloadMapper (ErrorPayloadMappers .clientV3 (this .connectionContext .getObjectMapper ()));
200202 }
0 commit comments