Created
March 8, 2022 12:25
-
-
Save koke/b4bd32892a651713f16100cfd0ba35a6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/Hardware/Hardware/CardReader/StripeCardReader/StripeCardReaderService.swift b/Hardware/Hardware/CardReader/StripeCardReader/StripeCardReaderService.swift | |
index 88d5f9c4e..cf5a438c6 100644 | |
--- a/Hardware/Hardware/CardReader/StripeCardReader/StripeCardReaderService.swift | |
+++ b/Hardware/Hardware/CardReader/StripeCardReader/StripeCardReaderService.swift | |
@@ -42,12 +42,12 @@ extension StripeCardReaderService: CardReaderService { | |
} | |
public var connectedReaders: AnyPublisher<[CardReader], Never> { | |
- connectedReadersSubject.eraseToAnyPublisher() | |
+ connectedReadersSubject.print("ππ³ connectedReaders").eraseToAnyPublisher() | |
} | |
/// The Publisher that emits reader events | |
public var readerEvents: AnyPublisher<CardReaderEvent, Never> { | |
- readerEventsSubject.eraseToAnyPublisher() | |
+ readerEventsSubject.print("ππ³ readerEvents").eraseToAnyPublisher() | |
} | |
public var softwareUpdateEvents: AnyPublisher<CardReaderSoftwareUpdateState, Never> { | |
@@ -211,14 +211,20 @@ extension StripeCardReaderService: CardReaderService { | |
// a single value or it will fail. | |
// This isn't enforced by the type system, but it is guaranteed as long as all the | |
// steps produce a Future. | |
- return createPaymentIntent(parameters) | |
- .flatMap { intent in | |
+ return waitForInsertedCardToBeRemoved() | |
+ .flatMap { | |
+ self.createPaymentIntent(parameters) | |
+ }.flatMap { intent in | |
self.collectPaymentMethod(intent: intent) | |
}.flatMap { intent in | |
self.processPayment(intent: intent) | |
}.flatMap { intent in | |
- self.waitForInsertedCardToBeRemoved(intent: intent) | |
- }.eraseToAnyPublisher() | |
+ self.waitForInsertedCardToBeRemoved() | |
+ .map { intent } | |
+ } | |
+ .map(PaymentIntent.init(intent:)) | |
+ .print("ππ³ capturePayment") | |
+ .eraseToAnyPublisher() | |
} | |
public func cancelPaymentIntent() -> Future<Void, Error> { | |
@@ -406,7 +412,7 @@ private extension StripeCardReaderService { | |
} | |
} | |
- func waitForInsertedCardToBeRemoved(intent: PaymentIntent) -> Future<PaymentIntent, Error> { | |
+ func waitForInsertedCardToBeRemoved() -> Future<Void, Error> { | |
return Future() { [weak self] promise in | |
guard let self = self else { | |
return | |
@@ -414,7 +420,7 @@ private extension StripeCardReaderService { | |
// If there is no chip card inserted, it is ok to immediatedly return. The payment method may have been swipe or tap. | |
if !self.isChipCardInserted { | |
- return promise(.success(intent)) | |
+ return promise(.success(())) | |
} | |
self.timerCancellable = Timer.publish(every: 1, tolerance: 0.1, on: .main, in: .default) | |
@@ -423,13 +429,13 @@ private extension StripeCardReaderService { | |
.sink(receiveValue: { _ in | |
if !self.isChipCardInserted { | |
self.timerCancellable?.cancel() | |
- return promise(.success(intent)) | |
+ return promise(.success(())) | |
} | |
}) | |
} | |
} | |
- func processPayment(intent: StripeTerminal.PaymentIntent) -> Future<PaymentIntent, Error> { | |
+ func processPayment(intent: StripeTerminal.PaymentIntent) -> Future<StripeTerminal.PaymentIntent, Error> { | |
return Future() { [weak self] promise in | |
Terminal.shared.processPayment(intent) { (intent, error) in | |
if let error = error { | |
@@ -438,7 +444,7 @@ private extension StripeCardReaderService { | |
} | |
if let intent = intent { | |
- promise(.success(PaymentIntent(intent: intent))) | |
+ promise(.success(intent)) | |
self?.activePaymentIntent = nil | |
} | |
} | |
diff --git a/WooCommerce/WooCommerce.xcodeproj/xcshareddata/xcschemes/WooCommerce.xcscheme b/WooCommerce/WooCommerce.xcodeproj/xcshareddata/xcschemes/WooCommerce.xcscheme | |
index 76b727fdd..f9ac7b88d 100644 | |
--- a/WooCommerce/WooCommerce.xcodeproj/xcshareddata/xcschemes/WooCommerce.xcscheme | |
+++ b/WooCommerce/WooCommerce.xcodeproj/xcshareddata/xcschemes/WooCommerce.xcscheme | |
@@ -125,7 +125,7 @@ | |
</CommandLineArgument> | |
<CommandLineArgument | |
argument = "-stripe-verbose-logging" | |
- isEnabled = "NO"> | |
+ isEnabled = "YES"> | |
</CommandLineArgument> | |
<CommandLineArgument | |
argument = "-simulate-stripe-card-reader" | |
diff --git a/Yosemite/Yosemite/Base/Dispatcher.swift b/Yosemite/Yosemite/Base/Dispatcher.swift | |
index 0e4bd9a45..25a9a666b 100644 | |
--- a/Yosemite/Yosemite/Base/Dispatcher.swift | |
+++ b/Yosemite/Yosemite/Base/Dispatcher.swift | |
@@ -73,6 +73,7 @@ public class Dispatcher { | |
guard let processor = processors[action.identifier] else { | |
return DDLogWarn("β οΈ No processor found for \(action.identifier)!") | |
} | |
+ DDLogDebug("ππ \(type(of: action)).\(action)") | |
processor.onAction(action) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment