Skip to content

Commit d4e6809

Browse files
committed
Split POS-related CollectOrderPaymentAnalyticsTracking conformance to its own object
1 parent e5bf087 commit d4e6809

File tree

8 files changed

+111
-71
lines changed

8 files changed

+111
-71
lines changed

WooCommerce/Classes/POS/Analytics/POSCollectOrderPaymentAnalytics.swift

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import protocol WooFoundation.Analytics
22
import Yosemite
33

4-
final class POSCollectOrderPaymentAnalytics: CollectOrderPaymentAnalyticsTracking {
4+
final class POSCollectOrderPaymentAnalytics: CollectOrderPaymentAnalyticsTracking, POSCollectOrderPaymentAnalyticsTracking {
55
var connectedReaderModel: String?
66

77
private var customerInteractionStarted: Double = 0
@@ -126,15 +126,3 @@ private extension POSCollectOrderPaymentAnalytics {
126126
resetProcessingPaymentTracking()
127127
}
128128
}
129-
130-
// Protocol conformance. These events are not needed for IPP, only for POS.
131-
// https://github.com/woocommerce/woocommerce-ios/issues/15149
132-
extension CollectOrderPaymentAnalytics {
133-
func trackCustomerInteractionStarted() { }
134-
func trackOrderSyncSuccess() { }
135-
func trackCardReaderReady() { }
136-
func trackCardReaderTapped() { }
137-
func trackCheckoutTapped() { }
138-
func resetCheckoutTapCountTracker() { }
139-
func trackSuccessfulCashPayment() { }
140-
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
protocol POSCollectOrderPaymentAnalyticsTracking: CollectOrderPaymentAnalyticsTracking {
2+
func trackCustomerInteractionStarted()
3+
func trackOrderSyncSuccess()
4+
func trackCardReaderReady()
5+
func trackCardReaderTapped()
6+
func trackCheckoutTapped()
7+
func resetCheckoutTapCountTracker()
8+
func trackSuccessfulCashPayment()
9+
}

WooCommerce/Classes/POS/Models/PointOfSaleAggregateModel.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ protocol PointOfSaleAggregateModelProtocol {
6262
private let cardPresentPaymentService: CardPresentPaymentFacade
6363
private let orderController: PointOfSaleOrderControllerProtocol
6464
private let analytics: Analytics
65-
private let collectOrderPaymentAnalyticsTracker: CollectOrderPaymentAnalyticsTracking
65+
private let collectOrderPaymentAnalyticsTracker: POSCollectOrderPaymentAnalyticsTracking
6666

6767
private var startPaymentOnCardReaderConnection: AnyCancellable?
6868
private var cardReaderDisconnection: AnyCancellable?
@@ -73,7 +73,7 @@ protocol PointOfSaleAggregateModelProtocol {
7373
cardPresentPaymentService: CardPresentPaymentFacade,
7474
orderController: PointOfSaleOrderControllerProtocol,
7575
analytics: Analytics = ServiceLocator.analytics,
76-
collectOrderPaymentAnalyticsTracker: CollectOrderPaymentAnalyticsTracking,
76+
collectOrderPaymentAnalyticsTracker: POSCollectOrderPaymentAnalyticsTracking,
7777
paymentState: PointOfSalePaymentState = .card(.idle)) {
7878
self.itemsController = itemsController
7979
self.cardPresentPaymentService = cardPresentPaymentService

WooCommerce/Classes/POS/Presentation/PointOfSaleEntryPointView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ struct PointOfSaleEntryPointView: View {
1212
onPointOfSaleModeActiveStateChange: @escaping ((Bool) -> Void),
1313
cardPresentPaymentService: CardPresentPaymentFacade,
1414
orderController: PointOfSaleOrderControllerProtocol,
15-
collectOrderPaymentAnalyticsTracker: CollectOrderPaymentAnalyticsTracking) {
15+
collectOrderPaymentAnalyticsTracker: POSCollectOrderPaymentAnalyticsTracking) {
1616
self.onPointOfSaleModeActiveStateChange = onPointOfSaleModeActiveStateChange
1717

1818
let posModel = PointOfSaleAggregateModel(

WooCommerce/Classes/ViewRelated/Orders/Collect Payments/CollectOrderPaymentAnalytics.swift

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,6 @@ protocol CollectOrderPaymentAnalyticsTracking {
2424
func trackReceiptPrintCanceled()
2525

2626
func trackReceiptPrintFailed(error: Error)
27-
28-
func trackCustomerInteractionStarted()
29-
func trackOrderSyncSuccess()
30-
func trackCardReaderReady()
31-
func trackCardReaderTapped()
32-
func trackCheckoutTapped()
33-
func resetCheckoutTapCountTracker()
34-
func trackSuccessfulCashPayment()
3527
}
3628

3729
final class CollectOrderPaymentAnalytics: CollectOrderPaymentAnalyticsTracking {

WooCommerce/WooCommerce.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1629,6 +1629,7 @@
16291629
68E952D22875A44B0095A23D /* CardReaderType+Manual.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68E952D12875A44B0095A23D /* CardReaderType+Manual.swift */; };
16301630
68ED2BD62ADD2C8C00ECA88D /* LineDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68ED2BD52ADD2C8C00ECA88D /* LineDetailView.swift */; };
16311631
68F151E12C0DA7910082AEC8 /* CartItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68F151E02C0DA7910082AEC8 /* CartItem.swift */; };
1632+
68F68A502D6730E200BB9568 /* POSCollectOrderPaymentAnalyticsTracking.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68F68A4F2D6730DF00BB9568 /* POSCollectOrderPaymentAnalyticsTracking.swift */; };
16321633
68F896422D5E4323000B308B /* POSCollectOrderPaymentAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68F896412D5E4321000B308B /* POSCollectOrderPaymentAnalytics.swift */; };
16331634
740382DB2267D94100A627F4 /* LargeImageTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 740382D92267D94100A627F4 /* LargeImageTableViewCell.swift */; };
16341635
740382DC2267D94100A627F4 /* LargeImageTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 740382DA2267D94100A627F4 /* LargeImageTableViewCell.xib */; };
@@ -4782,6 +4783,7 @@
47824783
68E952D12875A44B0095A23D /* CardReaderType+Manual.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CardReaderType+Manual.swift"; sourceTree = "<group>"; };
47834784
68ED2BD52ADD2C8C00ECA88D /* LineDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LineDetailView.swift; sourceTree = "<group>"; };
47844785
68F151E02C0DA7910082AEC8 /* CartItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CartItem.swift; sourceTree = "<group>"; };
4786+
68F68A4F2D6730DF00BB9568 /* POSCollectOrderPaymentAnalyticsTracking.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSCollectOrderPaymentAnalyticsTracking.swift; sourceTree = "<group>"; };
47854787
68F896412D5E4321000B308B /* POSCollectOrderPaymentAnalytics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = POSCollectOrderPaymentAnalytics.swift; sourceTree = "<group>"; };
47864788
6A58DEEBCA91CDE69F439754 /* Pods_Woo_Watch_App.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Woo_Watch_App.framework; sourceTree = BUILT_PRODUCTS_DIR; };
47874789
6DC4526F9A7357761197EBF0 /* Pods_WooCommerceTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WooCommerceTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -7746,6 +7748,7 @@
77467748
02D1D2D82CD3CD710069A93F /* Analytics */ = {
77477749
isa = PBXGroup;
77487750
children = (
7751+
68F68A4F2D6730DF00BB9568 /* POSCollectOrderPaymentAnalyticsTracking.swift */,
77497752
68F896412D5E4321000B308B /* POSCollectOrderPaymentAnalytics.swift */,
77507753
02D1D2D92CD3CD8D0069A93F /* WooAnalyticsEvent+PointOfSale.swift */,
77517754
);
@@ -16167,6 +16170,7 @@
1616716170
203163AF2C1C5C6B001C96DA /* PointOfSaleCardPresentPaymentConnectingFailedUpdateAddressAlertViewModel.swift in Sources */,
1616816171
EE45E2BF2A409E250085F227 /* UIColor+Tooltip.swift in Sources */,
1616916172
B5FD111621D3F13700560344 /* BordersView.swift in Sources */,
16173+
68F68A502D6730E200BB9568 /* POSCollectOrderPaymentAnalyticsTracking.swift in Sources */,
1617016174
68E674AF2A4DACD50034BA1E /* UpgradeTopBarView.swift in Sources */,
1617116175
0262DA5B23A244830029AF30 /* Product+ShippingSettingsViewModels.swift in Sources */,
1617216176
02D29A8E29F7C26000473D6D /* InputAccessoryView.swift in Sources */,

WooCommerce/WooCommerceTests/Mocks/MockCollectOrderPaymentAnalyticsTracker.swift

Lines changed: 54 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,33 +53,80 @@ final class MockCollectOrderPaymentAnalyticsTracker: CollectOrderPaymentAnalytic
5353
func trackReceiptPrintFailed(error: Error) {
5454
// no-op
5555
}
56+
}
57+
58+
59+
final class MockPOSCollectOrderPaymentAnalyticsTracker: POSCollectOrderPaymentAnalyticsTracking {
60+
var didCallTrackCheckoutTapped = false
5661

5762
func trackCustomerInteractionStarted() {
5863
// no-op
5964
}
60-
65+
6166
func trackOrderSyncSuccess() {
6267
// no-op
6368
}
64-
69+
6570
func trackCardReaderReady() {
6671
// no-op
6772
}
68-
73+
6974
func trackCardReaderTapped() {
7075
// no-op
7176
}
72-
73-
var didCallTrackCheckoutTapped = false
77+
78+
7479
func trackCheckoutTapped() {
7580
didCallTrackCheckoutTapped = true
7681
}
77-
82+
7883
func resetCheckoutTapCountTracker() {
7984
// no-op
8085
}
81-
86+
8287
func trackSuccessfulCashPayment() {
8388
// no-op
8489
}
90+
91+
var connectedReaderModel: String?
92+
93+
func preflightResultReceived(_ result: WooCommerce.CardReaderPreflightResult?) {
94+
// no-op
95+
}
96+
97+
func trackProcessingCompletion(intent: Yosemite.PaymentIntent) {
98+
// no-op
99+
}
100+
101+
func trackSuccessfulCardPayment(capturedPaymentData: WooCommerce.CardPresentCapturedPaymentData) {
102+
// no-op
103+
}
104+
105+
func trackPaymentFailure(with error: any Error) {
106+
// no-op
107+
}
108+
109+
func trackPaymentCancelation(cancelationSource: WooCommerce.WooAnalyticsEvent.InPersonPayments.CancellationSource) {
110+
// no-op
111+
}
112+
113+
func trackEmailTapped() {
114+
// no-op
115+
}
116+
117+
func trackReceiptPrintTapped() {
118+
// no-op
119+
}
120+
121+
func trackReceiptPrintSuccess() {
122+
// no-op
123+
}
124+
125+
func trackReceiptPrintCanceled() {
126+
// no-op
127+
}
128+
129+
func trackReceiptPrintFailed(error: any Error) {
130+
// no-op
131+
}
85132
}

0 commit comments

Comments
 (0)