Skip to content

Commit

Permalink
Merge pull request #664 from 64characters/product-name-conflict
Browse files Browse the repository at this point in the history
Remove the Product type name conflict
  • Loading branch information
eofster committed Nov 11, 2021
2 parents cb47440 + c265613 commit d13b7d1
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 15 deletions.
2 changes: 1 addition & 1 deletion Telephone/Product+SKProduct.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import StoreKit
import UseCases

extension Product {
extension UseCases.Product {
init(product: SKProduct, name: String, formatter: NumberFormatter) {
self.init(
identifier: product.productIdentifier,
Expand Down
5 changes: 3 additions & 2 deletions Telephone/SKPaymentQueueToStoreAdapter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
//

import StoreKit
import UseCases

final class SKPaymentQueueToStoreAdapter {
private let queue: SKPaymentQueue
Expand All @@ -29,15 +30,15 @@ final class SKPaymentQueueToStoreAdapter {
}

extension SKPaymentQueueToStoreAdapter: Store {
func purchase(_ product: Product) throws {
func purchase(_ product: UseCases.Product) throws {
queue.add(SKPayment(product: try storeKitProduct(for: product)))
}

func restorePurchases() {
queue.restoreCompletedTransactions()
}

private func storeKitProduct(for product: Product) throws -> SKProduct {
private func storeKitProduct(for product: UseCases.Product) throws -> SKProduct {
if let result = products[product] {
return result
} else {
Expand Down
22 changes: 11 additions & 11 deletions Telephone/SKProductsRequestToProductsAdapter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ import StoreKit
import UseCases

final class SKProductsRequestToProductsAdapter: NSObject {
private var products: [String: Product] = [:]
private var storeKitProducts: [Product: SKProduct] = [:]
private var products: [String: UseCases.Product] = [:]
private var storeKitProducts: [UseCases.Product: SKProduct] = [:]
private var request: SKProductsRequest?

private let expected: ExpectedProducts
Expand All @@ -34,11 +34,11 @@ final class SKProductsRequestToProductsAdapter: NSObject {
}

extension SKProductsRequestToProductsAdapter: Products {
var all: [Product] {
var all: [UseCases.Product] {
return Array(products.values)
}

subscript(identifier: String) -> Product? {
subscript(identifier: String) -> UseCases.Product? {
return products[identifier]
}

Expand All @@ -51,7 +51,7 @@ extension SKProductsRequestToProductsAdapter: Products {
}

extension SKProductsRequestToProductsAdapter: StoreKitProducts {
subscript(product: Product) -> SKProduct? {
subscript(product: UseCases.Product) -> SKProduct? {
return storeKitProducts[product]
}
}
Expand All @@ -64,17 +64,17 @@ extension SKProductsRequestToProductsAdapter: SKProductsRequestDelegate {
}
}

private func productMaps(with products: [SKProduct]?) -> ([String: Product], [Product: SKProduct]) {
private func productMaps(with products: [SKProduct]?) -> ([String: UseCases.Product], [UseCases.Product: SKProduct]) {
if let products = products {
return productMaps(with: products)
} else {
return ([:], [:])
}
}

private func productMaps(with products: [SKProduct]) -> ([String: Product], [Product: SKProduct]) {
var idToProduct: [String: Product] = [:]
var productToSKProduct: [Product: SKProduct] = [:]
private func productMaps(with products: [SKProduct]) -> ([String: UseCases.Product], [UseCases.Product: SKProduct]) {
var idToProduct: [String: UseCases.Product] = [:]
var productToSKProduct: [UseCases.Product: SKProduct] = [:]
let formatter = NumberFormatter()
formatter.numberStyle = .currency
for skProduct in products {
Expand Down Expand Up @@ -125,8 +125,8 @@ private func descriptionOf(_ error: Error) -> String {
}
}

private func identifierToProduct(fromProducts products: [Product]) -> [String: Product] {
var result: [String: Product] = [:]
private func identifierToProduct(fromProducts products: [UseCases.Product]) -> [String: UseCases.Product] {
var result: [String: UseCases.Product] = [:]
products.forEach { result[$0.identifier] = $0 }
return result
}
2 changes: 1 addition & 1 deletion Telephone/StoreKitProducts.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@ import StoreKit
import UseCases

protocol StoreKitProducts {
subscript(product: Product) -> SKProduct? { get }
subscript(product: UseCases.Product) -> SKProduct? { get }
}

0 comments on commit d13b7d1

Please sign in to comment.