From c2bb46f41d49ec3a990fc09dc73c4878772ee1fd Mon Sep 17 00:00:00 2001 From: Ehren Kret Date: Fri, 8 Apr 2022 11:27:51 -0500 Subject: [PATCH] Add outcome network status and outcome reason to subscription info --- .../controllers/SubscriptionController.java | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/SubscriptionController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/SubscriptionController.java index 662af3a26..3fa055fb0 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/SubscriptionController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/SubscriptionController.java @@ -13,6 +13,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; import com.fasterxml.jackson.annotation.JsonProperty; 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.InvoiceLineItem; import com.stripe.model.Subscription; @@ -673,13 +675,19 @@ public class SubscriptionController { public static class ChargeFailure { private final String code; private final String message; + private final String outcomeNetworkStatus; + private final String outcomeReason; @JsonCreator public ChargeFailure( @JsonProperty("code") String code, - @JsonProperty("message") String message) { + @JsonProperty("message") String message, + @JsonProperty("outcomeNetworkStatus") String outcomeNetworkStatus, + @JsonProperty("outcomeReason") String outcomeReason) { this.code = code; this.message = message; + this.outcomeNetworkStatus = outcomeNetworkStatus; + this.outcomeReason = outcomeReason; } public String getCode() { @@ -689,6 +697,14 @@ public class SubscriptionController { public String getMessage() { return message; } + + public String getOutcomeNetworkStatus() { + return outcomeNetworkStatus; + } + + public String getOutcomeReason() { + return outcomeReason; + } } private final Subscription subscription; @@ -732,9 +748,13 @@ public class SubscriptionController { GetSubscriptionInformationResponse.ChargeFailure chargeFailure = null; if (subscription.getLatestInvoiceObject() != null && subscription.getLatestInvoiceObject().getChargeObject() != null && (subscription.getLatestInvoiceObject().getChargeObject().getFailureCode() != null || subscription.getLatestInvoiceObject().getChargeObject().getFailureMessage() != null)) { + Charge charge = subscription.getLatestInvoiceObject().getChargeObject(); + Outcome outcome = charge.getOutcome(); chargeFailure = new GetSubscriptionInformationResponse.ChargeFailure( - subscription.getLatestInvoiceObject().getChargeObject().getFailureCode(), - subscription.getLatestInvoiceObject().getChargeObject().getFailureMessage()); + charge.getFailureCode(), + charge.getFailureMessage(), + outcome != null ? outcome.getNetworkStatus() : null, + outcome != null ? outcome.getReason() : null); } return Response.ok( new GetSubscriptionInformationResponse(