Add outcome network status and outcome reason to subscription info

This commit is contained in:
Ehren Kret 2022-04-08 11:27:51 -05:00
parent 12f76c24b1
commit c2bb46f41d
1 changed files with 23 additions and 3 deletions

View File

@ -13,6 +13,8 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.stripe.model.Charge;
import com.stripe.model.Charge.Outcome;
import com.stripe.model.Invoice; import com.stripe.model.Invoice;
import com.stripe.model.InvoiceLineItem; import com.stripe.model.InvoiceLineItem;
import com.stripe.model.Subscription; import com.stripe.model.Subscription;
@ -673,13 +675,19 @@ public class SubscriptionController {
public static class ChargeFailure { public static class ChargeFailure {
private final String code; private final String code;
private final String message; private final String message;
private final String outcomeNetworkStatus;
private final String outcomeReason;
@JsonCreator @JsonCreator
public ChargeFailure( public ChargeFailure(
@JsonProperty("code") String code, @JsonProperty("code") String code,
@JsonProperty("message") String message) { @JsonProperty("message") String message,
@JsonProperty("outcomeNetworkStatus") String outcomeNetworkStatus,
@JsonProperty("outcomeReason") String outcomeReason) {
this.code = code; this.code = code;
this.message = message; this.message = message;
this.outcomeNetworkStatus = outcomeNetworkStatus;
this.outcomeReason = outcomeReason;
} }
public String getCode() { public String getCode() {
@ -689,6 +697,14 @@ public class SubscriptionController {
public String getMessage() { public String getMessage() {
return message; return message;
} }
public String getOutcomeNetworkStatus() {
return outcomeNetworkStatus;
}
public String getOutcomeReason() {
return outcomeReason;
}
} }
private final Subscription subscription; private final Subscription subscription;
@ -732,9 +748,13 @@ public class SubscriptionController {
GetSubscriptionInformationResponse.ChargeFailure chargeFailure = null; GetSubscriptionInformationResponse.ChargeFailure chargeFailure = null;
if (subscription.getLatestInvoiceObject() != null && subscription.getLatestInvoiceObject().getChargeObject() != null && if (subscription.getLatestInvoiceObject() != null && subscription.getLatestInvoiceObject().getChargeObject() != null &&
(subscription.getLatestInvoiceObject().getChargeObject().getFailureCode() != null || subscription.getLatestInvoiceObject().getChargeObject().getFailureMessage() != null)) { (subscription.getLatestInvoiceObject().getChargeObject().getFailureCode() != null || subscription.getLatestInvoiceObject().getChargeObject().getFailureMessage() != null)) {
Charge charge = subscription.getLatestInvoiceObject().getChargeObject();
Outcome outcome = charge.getOutcome();
chargeFailure = new GetSubscriptionInformationResponse.ChargeFailure( chargeFailure = new GetSubscriptionInformationResponse.ChargeFailure(
subscription.getLatestInvoiceObject().getChargeObject().getFailureCode(), charge.getFailureCode(),
subscription.getLatestInvoiceObject().getChargeObject().getFailureMessage()); charge.getFailureMessage(),
outcome != null ? outcome.getNetworkStatus() : null,
outcome != null ? outcome.getReason() : null);
} }
return Response.ok( return Response.ok(
new GetSubscriptionInformationResponse( new GetSubscriptionInformationResponse(