Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
richardm-stripe committed Jun 7, 2021
1 parent 1e4f734 commit 9b16a15
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,19 @@ abstract class AbstractStripeResponse<T> {
/** The body of the response. */
T body;

public final int code() {
return this.code;
}

public final HttpHeaders headers() {
return this.headers;
}

public final T body() {
return this.body;
}


/** Number of times the request was retried. Used for internal tests only. */
@NonFinal
@Getter(AccessLevel.PACKAGE)
Expand Down Expand Up @@ -61,7 +74,7 @@ public String requestId() {
return this.headers.firstValue("Request-Id").orElse(null);
}

public AbstractStripeResponse(int code, HttpHeaders headers, T body) {
protected AbstractStripeResponse(int code, HttpHeaders headers, T body) {
requireNonNull(headers);
requireNonNull(body);

Expand Down
10 changes: 5 additions & 5 deletions src/main/java/com/stripe/net/HttpClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ private interface RequestSendFunction<R> {
R apply(StripeRequest request) throws StripeException;
}

private <T extends StripeResponseInterface> T sendWithTelemetry(
private <T extends AbstractStripeResponse<?>> T sendWithTelemetry(
StripeRequest request, RequestSendFunction<T> send) throws StripeException {
Optional<String> telemetryHeaderValue = requestTelemetry.getHeaderValue(request.headers());
if (telemetryHeaderValue.isPresent()) {
Expand All @@ -81,7 +81,7 @@ private <T extends StripeResponseInterface> T sendWithTelemetry(
* @throws StripeException If the request fails for any reason
*/
public StripeResponse requestWithTelemetry(StripeRequest request) throws StripeException {
return sendWithTelemetry(request, (r) -> this.request(r));
return sendWithTelemetry(request, this::request);
}

/**
Expand All @@ -94,10 +94,10 @@ public StripeResponse requestWithTelemetry(StripeRequest request) throws StripeE
*/
public StripeResponseStream requestStreamWithTelemetry(StripeRequest request)
throws StripeException {
return sendWithTelemetry(request, (r) -> this.requestStream(r));
return sendWithTelemetry(request, this::requestStream);
}

public <T extends StripeResponseInterface> T sendWithRetries(
public <T extends AbstractStripeResponse<?>> T sendWithRetries(
StripeRequest request, RequestSendFunction<T> send) throws StripeException {
ApiConnectionException requestException = null;
T response = null;
Expand Down Expand Up @@ -218,7 +218,7 @@ private static String formatAppInfo(Map<String, String> info) {
return str;
}

private <T extends StripeResponseInterface> boolean shouldRetry(
private <T extends AbstractStripeResponse<?>> boolean shouldRetry(
int numRetries, StripeException exception, StripeRequest request, T response) {
// Do not retry if we are out of retries.
if (numRetries >= request.options().getMaxNetworkRetries()) {
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/stripe/net/LiveStripeResponseGetter.java
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ public InputStream requestStream(
handleApiError(response);
}

return responseStream.bodyStream();
return responseStream.body();
}

@Override
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/stripe/net/RequestTelemetry.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public Optional<String> getHeaderValue(HttpHeaders headers) {
* @param response the Stripe response
* @param duration the request duration
*/
public void maybeEnqueueMetrics(StripeResponseInterface response, Duration duration) {
public void maybeEnqueueMetrics(AbstractStripeResponse<?> response, Duration duration) {
if (!Stripe.enableTelemetry) {
return;
}
Expand Down

0 comments on commit 9b16a15

Please sign in to comment.