Merge branch 'eb/stripeSubscriptionStatus.1' into release/5.26.1

This commit is contained in:
Eugene Bistolas 2021-11-23 09:52:05 -10:00
commit aac791c658
2 changed files with 20 additions and 1 deletions

View File

@ -91,6 +91,13 @@ class SubscriptionViewController: OWSTableViewController2 {
private var subscriptionRedemptionFailureReason: SubscriptionRedemptionFailureReason {
var failureReason: SubscriptionRedemptionFailureReason = .none
if let currentSubscription = currentSubscription {
if currentSubscription.status == .incomplete || currentSubscription.status == .incompleteExpired {
return .paymentFailed
}
}
SDSDatabaseStorage.shared.read { transaction in
failureReason = SubscriptionManager.lastReceiptRedemptionFailed(transaction: transaction)
}

View File

@ -47,6 +47,17 @@ public class SubscriptionLevel: Comparable {
}
public struct Subscription {
public enum StripeSubscriptionStatus: String {
case trialing = "trialing"
case active = "active"
case incomplete = "incomplete"
case incompleteExpired = "incomplete_expired"
case pastDue = "past_due"
case cancelled = "cancelled"
case unpaid = "unpaid"
}
public let level: UInt
public let currency: String
public let amount: NSDecimalNumber
@ -54,6 +65,7 @@ public struct Subscription {
public let billingCycleAnchor: TimeInterval
public let active: Bool
public let cancelAtEndOfPeriod: Bool
public let status: StripeSubscriptionStatus
public init(jsonDictionary: [String: Any]) throws {
let params = ParamParser(dictionary: jsonDictionary)
@ -65,7 +77,7 @@ public struct Subscription {
billingCycleAnchor = try params.required(key: "billingCycleAnchor")
active = try params.required(key: "active")
cancelAtEndOfPeriod = try params.required(key: "cancelAtPeriodEnd")
status = StripeSubscriptionStatus(rawValue: try params.required(key: "status"))!
}
}