From bcbbe24482f7f4548e4620dd77952d43a7b01b85 Mon Sep 17 00:00:00 2001 From: NachoSoto Date: Mon, 5 Sep 2022 13:53:40 -0700 Subject: [PATCH] `Offering`: improved confusing log for `PackageType.custom` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes [CSDK-450]. We were logging a message for packages with custom duration that says "Unknown subscription length for package, ignoring." This is very confusing for customers, as it looks like something is wrong. However it’s expected and normal behavior for packages with custom duration. --- Sources/Logging/Strings/OfferingStrings.swift | 7 +++++++ Sources/Purchasing/Offering.swift | 13 ++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Sources/Logging/Strings/OfferingStrings.swift b/Sources/Logging/Strings/OfferingStrings.swift index 3179ed6ca6..283eda1f5e 100644 --- a/Sources/Logging/Strings/OfferingStrings.swift +++ b/Sources/Logging/Strings/OfferingStrings.swift @@ -38,6 +38,8 @@ enum OfferingStrings { case configuration_error_no_products_for_offering case offering_empty(offeringIdentifier: String) case product_details_empty_title(productIdentifier: String) + case unknown_package_type(Package) + case custom_package_type(Package) } @@ -126,6 +128,11 @@ extension OfferingStrings: CustomStringConvertible { case let .product_details_empty_title(identifier): return "Empty Product titles are not supported. Found in product with identifier: \(identifier)" + case let .unknown_package_type(package): + return "Unknown subscription length for package '\(package.offeringIdentifier)'. Ignoring." + + case let .custom_package_type(package): + return "Package '\(package.offeringIdentifier)' has a custom duration. Ignoring." } } diff --git a/Sources/Purchasing/Offering.swift b/Sources/Purchasing/Offering.swift index e0788e766f..fed7c3f09b 100644 --- a/Sources/Purchasing/Offering.swift +++ b/Sources/Purchasing/Offering.swift @@ -109,6 +109,7 @@ import Foundation return package(identifier: key) } + // swiftlint:disable:next cyclomatic_complexity init(identifier: String, serverDescription: String, availablePackages: [Package]) { self.identifier = identifier self.serverDescription = serverDescription @@ -138,11 +139,13 @@ import Foundation case .custom where package.storeProduct.productCategory == .nonSubscription: // Non-subscription product, ignoring continue - case .unknown, .custom: - Logger.warn( - "Unknown subscription length for package '\(package.offeringIdentifier)': " + - "\(package.packageType). Ignoring." - ) + + case .custom: + Logger.debug(Strings.offering.custom_package_type(package)) + continue + + case .unknown: + Logger.warn(Strings.offering.unknown_package_type(package)) continue }