Skip to content

Commit e50745c

Browse files
feat: Add optional URL parameter to FetchResponse (box/box-codegen#617) (#89)
1 parent 8c1bbc3 commit e50745c

File tree

5 files changed

+23
-1
lines changed

5 files changed

+23
-1
lines changed

.codegen.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{ "engineHash": "d435f50", "specHash": "544d370", "version": "0.1.1" }
1+
{ "engineHash": "f073ce3", "specHash": "544d370", "version": "0.1.1" }

src/main/java/com/box/sdkgen/networking/fetch/FetchManager.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,16 +67,22 @@ public static FetchResponse fetch(FetchOptions options) {
6767
response.headers().toMultimap().entrySet().stream()
6868
.collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().get(0)));
6969

70+
String responseUrl =
71+
response.networkResponse() != null
72+
? response.networkResponse().request().url().toString()
73+
: response.request().url().toString();
7074
fetchResponse =
7175
Objects.equals(fetchOptions.getResponseFormat().getEnumValue(), ResponseFormat.BINARY)
7276
? new FetchResponse.FetchResponseBuilder(response.code(), headersMap)
7377
.content(response.body().byteStream())
78+
.url(responseUrl)
7479
.build()
7580
: new FetchResponse.FetchResponseBuilder(response.code(), headersMap)
7681
.data(
7782
response.body() != null
7883
? jsonToSerializedData(response.body().string())
7984
: null)
85+
.url(responseUrl)
8086
.build();
8187

8288
fetchResponse =

src/main/java/com/box/sdkgen/networking/fetchresponse/FetchResponse.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
public class FetchResponse {
88

9+
public String url;
10+
911
public final int status;
1012

1113
public JsonNode data;
@@ -20,12 +22,17 @@ public FetchResponse(int status, Map<String, String> headers) {
2022
}
2123

2224
protected FetchResponse(FetchResponseBuilder builder) {
25+
this.url = builder.url;
2326
this.status = builder.status;
2427
this.data = builder.data;
2528
this.content = builder.content;
2629
this.headers = builder.headers;
2730
}
2831

32+
public String getUrl() {
33+
return url;
34+
}
35+
2936
public int getStatus() {
3037
return status;
3138
}
@@ -44,6 +51,8 @@ public Map<String, String> getHeaders() {
4451

4552
public static class FetchResponseBuilder {
4653

54+
protected String url;
55+
4756
protected final int status;
4857

4958
protected JsonNode data;
@@ -57,6 +66,11 @@ public FetchResponseBuilder(int status, Map<String, String> headers) {
5766
this.headers = headers;
5867
}
5968

69+
public FetchResponseBuilder url(String url) {
70+
this.url = url;
71+
return this;
72+
}
73+
6074
public FetchResponseBuilder data(JsonNode data) {
6175
this.data = data;
6276
return this;

src/test/java/com/box/sdkgen/test/client/InterceptorChangingResponse.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public FetchOptions beforeRequest(FetchOptions options) {
1616
@Override
1717
public FetchResponse afterRequest(FetchResponse response) {
1818
return new FetchResponse.FetchResponseBuilder(response.getStatus(), response.getHeaders())
19+
.url(response.getUrl())
1920
.data(jsonToSerializedData("{\"id\": \"123\", \"type\": \"user\"}"))
2021
.content(response.getContent())
2122
.build();

src/test/java/com/box/sdkgen/test/client/InterceptorThrowingError.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public FetchOptions beforeRequest(FetchOptions options) {
1414
@Override
1515
public FetchResponse afterRequest(FetchResponse response) {
1616
return new FetchResponse.FetchResponseBuilder(400, response.getHeaders())
17+
.url(response.getUrl())
1718
.data(response.getData())
1819
.content(response.getContent())
1920
.build();

0 commit comments

Comments
 (0)