Skip to content

Commit

Permalink
Uses a dictionary to build a Transaction, instead of the incorrect ty…
Browse files Browse the repository at this point in the history
…pealias to RCStoreTransaction. (#113)
  • Loading branch information
JayShortway committed Jun 26, 2024
1 parent 0a38a61 commit 1b86be3
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 16 deletions.
15 changes: 8 additions & 7 deletions core/api/core.klib.api
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ final class com.revenuecat.purchases.kmp.models/SubscriptionOptions { // com.rev
final val introOffer // com.revenuecat.purchases.kmp.models/SubscriptionOptions.introOffer|{}introOffer[0]
final fun <get-introOffer>(): com.revenuecat.purchases.kmp.models/SubscriptionOption? // com.revenuecat.purchases.kmp.models/SubscriptionOptions.introOffer.<get-introOffer>|<get-introOffer>(){}[0]
}
final class com.revenuecat.purchases.kmp.models/Transaction // com.revenuecat.purchases.kmp.models/Transaction|null[0]
final class com.revenuecat.purchases.kmp/DangerousSettings { // com.revenuecat.purchases.kmp/DangerousSettings|null[0]
constructor <init>(kotlin/Boolean = ...) // com.revenuecat.purchases.kmp/DangerousSettings.<init>|<init>(kotlin.Boolean){}[0]
final fun component1(): kotlin/Boolean // com.revenuecat.purchases.kmp/DangerousSettings.component1|component1(){}[0]
Expand Down Expand Up @@ -586,12 +587,12 @@ final val com.revenuecat.purchases.kmp.models/presentedOfferingContext // com.re
final fun (cocoapods.PurchasesHybridCommon/RCStoreProduct).<get-presentedOfferingContext>(): cocoapods.PurchasesHybridCommon/RCPresentedOfferingContext? // com.revenuecat.purchases.kmp.models/presentedOfferingContext.<get-presentedOfferingContext>|<get-presentedOfferingContext>@cocoapods.PurchasesHybridCommon.RCStoreProduct(){}[0]
final val com.revenuecat.purchases.kmp.models/price // com.revenuecat.purchases.kmp.models/price|@cocoapods.PurchasesHybridCommon.RCStoreProduct{}price[0]
final fun (cocoapods.PurchasesHybridCommon/RCStoreProduct).<get-price>(): com.revenuecat.purchases.kmp.models/Price // com.revenuecat.purchases.kmp.models/price.<get-price>|<get-price>@cocoapods.PurchasesHybridCommon.RCStoreProduct(){}[0]
final val com.revenuecat.purchases.kmp.models/productIdentifier // com.revenuecat.purchases.kmp.models/productIdentifier|@cocoapods.PurchasesHybridCommon.RCStoreTransaction{}productIdentifier[0]
final fun (cocoapods.PurchasesHybridCommon/RCStoreTransaction).<get-productIdentifier>(): kotlin/String // com.revenuecat.purchases.kmp.models/productIdentifier.<get-productIdentifier>|<get-productIdentifier>@cocoapods.PurchasesHybridCommon.RCStoreTransaction(){}[0]
final val com.revenuecat.purchases.kmp.models/productIdentifier // com.revenuecat.purchases.kmp.models/productIdentifier|@com.revenuecat.purchases.kmp.models.Transaction{}productIdentifier[0]
final fun (com.revenuecat.purchases.kmp.models/Transaction).<get-productIdentifier>(): kotlin/String // com.revenuecat.purchases.kmp.models/productIdentifier.<get-productIdentifier>|<get-productIdentifier>@com.revenuecat.purchases.kmp.models.Transaction(){}[0]
final val com.revenuecat.purchases.kmp.models/productIds // com.revenuecat.purchases.kmp.models/productIds|@cocoapods.PurchasesHybridCommon.RCStoreTransaction{}productIds[0]
final fun (cocoapods.PurchasesHybridCommon/RCStoreTransaction).<get-productIds>(): kotlin.collections/List<kotlin/String> // com.revenuecat.purchases.kmp.models/productIds.<get-productIds>|<get-productIds>@cocoapods.PurchasesHybridCommon.RCStoreTransaction(){}[0]
final val com.revenuecat.purchases.kmp.models/purchaseDateMillis // com.revenuecat.purchases.kmp.models/purchaseDateMillis|@cocoapods.PurchasesHybridCommon.RCStoreTransaction{}purchaseDateMillis[0]
final fun (cocoapods.PurchasesHybridCommon/RCStoreTransaction).<get-purchaseDateMillis>(): kotlin/Long // com.revenuecat.purchases.kmp.models/purchaseDateMillis.<get-purchaseDateMillis>|<get-purchaseDateMillis>@cocoapods.PurchasesHybridCommon.RCStoreTransaction(){}[0]
final val com.revenuecat.purchases.kmp.models/purchaseDateMillis // com.revenuecat.purchases.kmp.models/purchaseDateMillis|@com.revenuecat.purchases.kmp.models.Transaction{}purchaseDateMillis[0]
final fun (com.revenuecat.purchases.kmp.models/Transaction).<get-purchaseDateMillis>(): kotlin/Long // com.revenuecat.purchases.kmp.models/purchaseDateMillis.<get-purchaseDateMillis>|<get-purchaseDateMillis>@com.revenuecat.purchases.kmp.models.Transaction(){}[0]
final val com.revenuecat.purchases.kmp.models/purchaseTime // com.revenuecat.purchases.kmp.models/purchaseTime|@cocoapods.PurchasesHybridCommon.RCStoreTransaction{}purchaseTime[0]
final fun (cocoapods.PurchasesHybridCommon/RCStoreTransaction).<get-purchaseTime>(): kotlin/Long // com.revenuecat.purchases.kmp.models/purchaseTime.<get-purchaseTime>|<get-purchaseTime>@cocoapods.PurchasesHybridCommon.RCStoreTransaction(){}[0]
final val com.revenuecat.purchases.kmp.models/purchasingData // com.revenuecat.purchases.kmp.models/purchasingData|@cocoapods.PurchasesHybridCommon.RCStoreProduct{}purchasingData[0]
Expand All @@ -604,8 +605,8 @@ final val com.revenuecat.purchases.kmp.models/title // com.revenuecat.purchases.
final fun (cocoapods.PurchasesHybridCommon/RCStoreProduct).<get-title>(): kotlin/String // com.revenuecat.purchases.kmp.models/title.<get-title>|<get-title>@cocoapods.PurchasesHybridCommon.RCStoreProduct(){}[0]
final val com.revenuecat.purchases.kmp.models/transactionId // com.revenuecat.purchases.kmp.models/transactionId|@cocoapods.PurchasesHybridCommon.RCStoreTransaction{}transactionId[0]
final fun (cocoapods.PurchasesHybridCommon/RCStoreTransaction).<get-transactionId>(): kotlin/String? // com.revenuecat.purchases.kmp.models/transactionId.<get-transactionId>|<get-transactionId>@cocoapods.PurchasesHybridCommon.RCStoreTransaction(){}[0]
final val com.revenuecat.purchases.kmp.models/transactionIdentifier // com.revenuecat.purchases.kmp.models/transactionIdentifier|@cocoapods.PurchasesHybridCommon.RCStoreTransaction{}transactionIdentifier[0]
final fun (cocoapods.PurchasesHybridCommon/RCStoreTransaction).<get-transactionIdentifier>(): kotlin/String // com.revenuecat.purchases.kmp.models/transactionIdentifier.<get-transactionIdentifier>|<get-transactionIdentifier>@cocoapods.PurchasesHybridCommon.RCStoreTransaction(){}[0]
final val com.revenuecat.purchases.kmp.models/transactionIdentifier // com.revenuecat.purchases.kmp.models/transactionIdentifier|@com.revenuecat.purchases.kmp.models.Transaction{}transactionIdentifier[0]
final fun (com.revenuecat.purchases.kmp.models/Transaction).<get-transactionIdentifier>(): kotlin/String // com.revenuecat.purchases.kmp.models/transactionIdentifier.<get-transactionIdentifier>|<get-transactionIdentifier>@com.revenuecat.purchases.kmp.models.Transaction(){}[0]
final val com.revenuecat.purchases.kmp.models/type // com.revenuecat.purchases.kmp.models/type|@cocoapods.PurchasesHybridCommon.RCStoreProductDiscount{}type[0]
final fun (cocoapods.PurchasesHybridCommon/RCStoreProductDiscount).<get-type>(): com.revenuecat.purchases.kmp.models/DiscountType // com.revenuecat.purchases.kmp.models/type.<get-type>|<get-type>@cocoapods.PurchasesHybridCommon.RCStoreProductDiscount(){}[0]
final val com.revenuecat.purchases.kmp.models/type // com.revenuecat.purchases.kmp.models/type|@cocoapods.PurchasesHybridCommon.RCStoreProduct{}type[0]
Expand Down Expand Up @@ -673,7 +674,7 @@ final val com.revenuecat.purchases.kmp/metadata // com.revenuecat.purchases.kmp/
final val com.revenuecat.purchases.kmp/monthly // com.revenuecat.purchases.kmp/monthly|@cocoapods.PurchasesHybridCommon.RCOffering{}monthly[0]
final fun (cocoapods.PurchasesHybridCommon/RCOffering).<get-monthly>(): cocoapods.PurchasesHybridCommon/RCPackage? // com.revenuecat.purchases.kmp/monthly.<get-monthly>|<get-monthly>@cocoapods.PurchasesHybridCommon.RCOffering(){}[0]
final val com.revenuecat.purchases.kmp/nonSubscriptionTransactions // com.revenuecat.purchases.kmp/nonSubscriptionTransactions|@cocoapods.PurchasesHybridCommon.RCCustomerInfo{}nonSubscriptionTransactions[0]
final fun (cocoapods.PurchasesHybridCommon/RCCustomerInfo).<get-nonSubscriptionTransactions>(): kotlin.collections/List<cocoapods.PurchasesHybridCommon/RCStoreTransaction> // com.revenuecat.purchases.kmp/nonSubscriptionTransactions.<get-nonSubscriptionTransactions>|<get-nonSubscriptionTransactions>@cocoapods.PurchasesHybridCommon.RCCustomerInfo(){}[0]
final fun (cocoapods.PurchasesHybridCommon/RCCustomerInfo).<get-nonSubscriptionTransactions>(): kotlin.collections/List<com.revenuecat.purchases.kmp.models/Transaction> // com.revenuecat.purchases.kmp/nonSubscriptionTransactions.<get-nonSubscriptionTransactions>|<get-nonSubscriptionTransactions>@cocoapods.PurchasesHybridCommon.RCCustomerInfo(){}[0]
final val com.revenuecat.purchases.kmp/offeringIdentifier // com.revenuecat.purchases.kmp/offeringIdentifier|@cocoapods.PurchasesHybridCommon.RCPresentedOfferingContext{}offeringIdentifier[0]
final fun (cocoapods.PurchasesHybridCommon/RCPresentedOfferingContext).<get-offeringIdentifier>(): kotlin/String // com.revenuecat.purchases.kmp/offeringIdentifier.<get-offeringIdentifier>|<get-offeringIdentifier>@cocoapods.PurchasesHybridCommon.RCPresentedOfferingContext(){}[0]
final val com.revenuecat.purchases.kmp/originalAppUserId // com.revenuecat.purchases.kmp/originalAppUserId|@cocoapods.PurchasesHybridCommon.RCCustomerInfo{}originalAppUserId[0]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package com.revenuecat.purchases.kmp
import cocoapods.PurchasesHybridCommon.RCCustomerInfo
import com.revenuecat.purchases.kmp.ktx.toEpochMilliseconds
import com.revenuecat.purchases.kmp.models.Transaction
import platform.Foundation.dictionaryWithValuesForKeys
import platform.darwin.NSObject

public actual typealias CustomerInfo = RCCustomerInfo

Expand All @@ -28,9 +30,14 @@ public actual val CustomerInfo.latestExpirationDateMillis: Long?
get() = latestExpirationDate()?.toEpochMilliseconds()
public actual val CustomerInfo.managementUrlString: String?
get() = managementURL()?.absoluteString
@Suppress("UNCHECKED_CAST")
public actual val CustomerInfo.nonSubscriptionTransactions: List<Transaction>
get() = nonSubscriptions() as List<Transaction>
get() = nonSubscriptions().map {
val map = (it as NSObject)
.dictionaryWithValuesForKeys(
listOf("transactionIdentifier", "productIdentifier", "purchaseDate")
).mapKeys { (key, _) -> key as String }
Transaction(map)
}
public actual val CustomerInfo.originalAppUserId: String
get() = originalAppUserId()
public actual val CustomerInfo.originalApplicationVersion: String?
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
package com.revenuecat.purchases.kmp.models

import cocoapods.PurchasesHybridCommon.RCStoreTransaction
import com.revenuecat.purchases.kmp.ktx.toEpochMilliseconds
import platform.Foundation.NSDate

public actual typealias Transaction = RCStoreTransaction
// FIXME This should be a typealias of RCNonSubscriptionTransaction so we don't need to use a map.
public actual class Transaction internal constructor(map: Map<String, Any?>) {
internal val transactionIdentifier: String by map
internal val productIdentifier: String by map
internal val purchaseDate: NSDate by map
}

public actual val Transaction.transactionIdentifier: String
get() = transactionIdentifier()
get() = transactionIdentifier
public actual val Transaction.productIdentifier: String
get() = productIdentifier()
get() = productIdentifier
public actual val Transaction.purchaseDateMillis: Long
get() = purchaseDate().toEpochMilliseconds()
get() = purchaseDate.toEpochMilliseconds()
4 changes: 2 additions & 2 deletions datetime/api/datetime.klib.api
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ final val com.revenuecat.purchases.kmp.datetime/originalPurchaseInstant // com.r
final fun (cocoapods.PurchasesHybridCommon/RCCustomerInfo).<get-originalPurchaseInstant>(): kotlinx.datetime/Instant? // com.revenuecat.purchases.kmp.datetime/originalPurchaseInstant.<get-originalPurchaseInstant>|<get-originalPurchaseInstant>@cocoapods.PurchasesHybridCommon.RCCustomerInfo(){}[0]
final val com.revenuecat.purchases.kmp.datetime/originalPurchaseInstant // com.revenuecat.purchases.kmp.datetime/originalPurchaseInstant|@cocoapods.PurchasesHybridCommon.RCEntitlementInfo{}originalPurchaseInstant[0]
final fun (cocoapods.PurchasesHybridCommon/RCEntitlementInfo).<get-originalPurchaseInstant>(): kotlinx.datetime/Instant? // com.revenuecat.purchases.kmp.datetime/originalPurchaseInstant.<get-originalPurchaseInstant>|<get-originalPurchaseInstant>@cocoapods.PurchasesHybridCommon.RCEntitlementInfo(){}[0]
final val com.revenuecat.purchases.kmp.datetime/purchaseInstant // com.revenuecat.purchases.kmp.datetime/purchaseInstant|@cocoapods.PurchasesHybridCommon.RCStoreTransaction{}purchaseInstant[0]
final fun (cocoapods.PurchasesHybridCommon/RCStoreTransaction).<get-purchaseInstant>(): kotlinx.datetime/Instant // com.revenuecat.purchases.kmp.datetime/purchaseInstant.<get-purchaseInstant>|<get-purchaseInstant>@cocoapods.PurchasesHybridCommon.RCStoreTransaction(){}[0]
final val com.revenuecat.purchases.kmp.datetime/purchaseInstant // com.revenuecat.purchases.kmp.datetime/purchaseInstant|@com.revenuecat.purchases.kmp.models.Transaction{}purchaseInstant[0]
final fun (com.revenuecat.purchases.kmp.models/Transaction).<get-purchaseInstant>(): kotlinx.datetime/Instant // com.revenuecat.purchases.kmp.datetime/purchaseInstant.<get-purchaseInstant>|<get-purchaseInstant>@com.revenuecat.purchases.kmp.models.Transaction(){}[0]
final val com.revenuecat.purchases.kmp.datetime/requestInstant // com.revenuecat.purchases.kmp.datetime/requestInstant|@cocoapods.PurchasesHybridCommon.RCCustomerInfo{}requestInstant[0]
final fun (cocoapods.PurchasesHybridCommon/RCCustomerInfo).<get-requestInstant>(): kotlinx.datetime/Instant // com.revenuecat.purchases.kmp.datetime/requestInstant.<get-requestInstant>|<get-requestInstant>@cocoapods.PurchasesHybridCommon.RCCustomerInfo(){}[0]
final val com.revenuecat.purchases.kmp.datetime/unsubscribeDetectedAtInstant // com.revenuecat.purchases.kmp.datetime/unsubscribeDetectedAtInstant|@cocoapods.PurchasesHybridCommon.RCEntitlementInfo{}unsubscribeDetectedAtInstant[0]
Expand Down

0 comments on commit 1b86be3

Please sign in to comment.