Skip to content

Commit e17b4d3

Browse files
committed
Merge branch 'trunk' into task/remove-timeout-from-POSSettingsLocalCatalogViewModelTests
2 parents 9ac149e + 1d4ebce commit e17b4d3

File tree

435 files changed

+1917
-2952
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

435 files changed

+1917
-2952
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Scheme
3+
LastUpgradeVersion = "2600"
4+
version = "1.7">
5+
<BuildAction
6+
parallelizeBuildables = "YES"
7+
buildImplicitDependencies = "YES"
8+
buildArchitectures = "Automatic">
9+
<BuildActionEntries>
10+
<BuildActionEntry
11+
buildForTesting = "YES"
12+
buildForRunning = "YES"
13+
buildForProfiling = "YES"
14+
buildForArchiving = "YES"
15+
buildForAnalyzing = "YES">
16+
<BuildableReference
17+
BuildableIdentifier = "primary"
18+
BlueprintIdentifier = "PointOfSale"
19+
BuildableName = "PointOfSale"
20+
BlueprintName = "PointOfSale"
21+
ReferencedContainer = "container:">
22+
</BuildableReference>
23+
</BuildActionEntry>
24+
</BuildActionEntries>
25+
</BuildAction>
26+
<TestAction
27+
buildConfiguration = "Debug"
28+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
29+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
30+
shouldUseLaunchSchemeArgsEnv = "YES">
31+
<TestPlans>
32+
<TestPlanReference
33+
reference = "container:Tests/PointOfSaleTests/PointOfSale.xctestplan"
34+
default = "YES">
35+
</TestPlanReference>
36+
</TestPlans>
37+
</TestAction>
38+
<LaunchAction
39+
buildConfiguration = "Debug"
40+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
41+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
42+
launchStyle = "0"
43+
useCustomWorkingDirectory = "NO"
44+
ignoresPersistentStateOnLaunch = "NO"
45+
debugDocumentVersioning = "YES"
46+
debugServiceExtension = "internal"
47+
allowLocationSimulation = "YES">
48+
</LaunchAction>
49+
<ProfileAction
50+
buildConfiguration = "Release"
51+
shouldUseLaunchSchemeArgsEnv = "YES"
52+
savedToolIdentifier = ""
53+
useCustomWorkingDirectory = "NO"
54+
debugDocumentVersioning = "YES">
55+
<MacroExpansion>
56+
<BuildableReference
57+
BuildableIdentifier = "primary"
58+
BlueprintIdentifier = "PointOfSale"
59+
BuildableName = "PointOfSale"
60+
BlueprintName = "PointOfSale"
61+
ReferencedContainer = "container:">
62+
</BuildableReference>
63+
</MacroExpansion>
64+
</ProfileAction>
65+
<AnalyzeAction
66+
buildConfiguration = "Debug">
67+
</AnalyzeAction>
68+
<ArchiveAction
69+
buildConfiguration = "Release"
70+
revealArchiveInOrganizer = "YES">
71+
</ArchiveAction>
72+
</Scheme>

Modules/Package.resolved

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Modules/Package.swift

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@ let package = Package(
6767
name: "Yosemite",
6868
targets: ["Yosemite"]
6969
),
70+
.library(
71+
name: "PointOfSale",
72+
targets: ["PointOfSale"]
73+
),
7074
],
7175
dependencies: [
7276
.package(url: "https://github.com/Alamofire/Alamofire", from: "5.2.0"),
@@ -182,7 +186,8 @@ let package = Package(
182186
dependencies: [
183187
"WooFoundationCore",
184188
.product(name: "Kingfisher", package: "Kingfisher")
185-
]
189+
],
190+
resources: [.process("Resources")]
186191
),
187192
.target(
188193
name: "WooFoundationCore",
@@ -230,6 +235,18 @@ let package = Package(
230235
.product(name: "WordPressEditor", package: "AztecEditor-iOS"),
231236
]
232237
),
238+
.target(
239+
name: "PointOfSale",
240+
dependencies: [
241+
"Experiments",
242+
"WooFoundation",
243+
"Yosemite",
244+
.product(name: "CocoaLumberjackSwift", package: "CocoaLumberjack"),
245+
.product(name: "Shimmer", package: "SwiftUI-Shimmer"),
246+
.product(name: "Kingfisher", package: "Kingfisher"),
247+
],
248+
resources: [.process("Resources")]
249+
),
233250
.testTarget(
234251
name: "ExperimentsTests",
235252
dependencies: [
@@ -295,7 +312,17 @@ let package = Package(
295312
.process("Resources"),
296313
.process("../NetworkingTests/Responses")
297314
]
298-
)
315+
),
316+
.testTarget(
317+
name: "PointOfSaleTests",
318+
dependencies: [
319+
.target(name: "PointOfSale"),
320+
"Codegen",
321+
"Fakes",
322+
"TestKit",
323+
"WooFoundation"
324+
]
325+
),
299326
]
300327
)
301328

@@ -374,6 +401,7 @@ enum XcodeSupport {
374401
"WordPressUI",
375402
"WPMediaPicker",
376403
"Yosemite",
404+
"PointOfSale",
377405
.product(name: "Alamofire", package: "Alamofire"),
378406
.product(name: "Algorithms", package: "swift-algorithms"),
379407
.product(name: "AutomatticAbout", package: "AutomatticAbout-swift"),

WooCommerce/Classes/POS/Analytics/POSOrderListFetchAnalytics.swift renamed to Modules/Sources/PointOfSale/Analytics/POSOrderListFetchAnalytics.swift

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
11
import Foundation
22
import Yosemite
3+
import struct WooFoundation.WooAnalyticsEvent
34

4-
struct POSOrderListFetchAnalytics: POSOrderListFetchAnalyticsTracking {
5+
public struct POSOrderListFetchAnalytics: POSOrderListFetchAnalyticsTracking {
56
private let analytics: POSAnalyticsProviding
67

7-
init(analytics: POSAnalyticsProviding) {
8+
public init(analytics: POSAnalyticsProviding) {
89
self.analytics = analytics
910
}
1011

11-
func trackOrdersFetchComplete(millisecondsSinceRequestSent: Int) {
12+
public func trackOrdersFetchComplete(millisecondsSinceRequestSent: Int) {
1213
analytics.track(event: WooAnalyticsEvent.PointOfSale.ordersListFetched(
1314
millisecondsSinceRequestSent: millisecondsSinceRequestSent
1415
))
1516
}
1617

17-
func trackOrdersSearchResultsFetchComplete(millisecondsSinceRequestSent: Int) {
18+
public func trackOrdersSearchResultsFetchComplete(millisecondsSinceRequestSent: Int) {
1819
analytics.track(event: WooAnalyticsEvent.PointOfSale.ordersListSearchResultsFetched(
1920
millisecondsSinceRequestSent: millisecondsSinceRequestSent
2021
))
2122
}
2223

23-
func trackOrdersNextPageLoaded(pageNumber: Int) {
24+
public func trackOrdersNextPageLoaded(pageNumber: Int) {
2425
analytics.track(event: WooAnalyticsEvent.PointOfSale.ordersListNextPageLoaded(
2526
pageNumber: pageNumber
2627
))

WooCommerce/Classes/POS/Analytics/WooAnalyticsEvent+PointOfSale.swift renamed to Modules/Sources/PointOfSale/Analytics/WooAnalyticsEvent+PointOfSale.swift

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ import struct Yosemite.POSSimpleProduct
66
import struct Yosemite.POSVariation
77
import enum WooFoundation.CountryCode
88
import enum Yosemite.PaymentMethod
9+
import struct WooFoundation.WooAnalyticsEvent
910

1011
extension WooAnalyticsEvent {
11-
enum PointOfSale {
12+
public enum PointOfSale {
1213
/// Event property Key.
1314
private enum Key {
1415
static let paymentsOnboardingState = "onboarding_state"
@@ -207,11 +208,11 @@ extension WooAnalyticsEvent {
207208
/// Tracks the time elapsed preparing reader for payment, after successful order creation
208209
/// - Parameter waitingTime: Elapsed time from Order creation to card ready for payment
209210
///
210-
static func cardReaderReadyForCardPayment(waitingTime: Double) -> WooAnalyticsEvent {
211+
public static func cardReaderReadyForCardPayment(waitingTime: Double) -> WooAnalyticsEvent {
211212
WooAnalyticsEvent(statName: .pointOfSaleReaderReadyForCardPayment, properties: [Key.waitingTime: "\(waitingTime)"])
212213
}
213214

214-
static func cardPresentCollectPaymentSuccess(forGatewayID: String?,
215+
public static func cardPresentCollectPaymentSuccess(forGatewayID: String?,
215216
countryCode: CountryCode,
216217
paymentMethod: PaymentMethod,
217218
cardReaderModel: String?,
@@ -224,7 +225,7 @@ extension WooAnalyticsEvent {
224225
Key.cardReaderModel: readerModel(for: cardReaderModel),
225226
Key.countryCode: countryCode.rawValue,
226227
Key.gatewayID: safeGatewayID(for: forGatewayID),
227-
Key.paymentMethodType: paymentMethod.analyticsValue,
228+
Key.paymentMethodType: analyticsValue(for: paymentMethod),
228229
Key.millisecondsSinceCustomerInteractionStarted: "\(millisecondsSinceCustomerIteractionStarted)",
229230
Key.millisecondsSinceOrderSyncSuccess: "\(millisecondsSinceOrderSyncSuccess)",
230231
Key.millisecondsSinceReaderReadyToCollect: "\(millisecondsSinceReaderReadyToCollect)",
@@ -233,7 +234,18 @@ extension WooAnalyticsEvent {
233234
])
234235
}
235236

236-
static func cashCollectPaymentSuccess(millisecondsSinceCustomerIteractionStarted: Double) -> WooAnalyticsEvent {
237+
static func analyticsValue(for paymentMethod: PaymentMethod) -> String {
238+
switch paymentMethod {
239+
case .card, .cardPresent:
240+
return "card"
241+
case .interacPresent:
242+
return "card_interac"
243+
case .unknown:
244+
return "unknown"
245+
}
246+
}
247+
248+
public static func cashCollectPaymentSuccess(millisecondsSinceCustomerIteractionStarted: Double) -> WooAnalyticsEvent {
237249
WooAnalyticsEvent(statName: .pointOfSaleCashCollectPaymentSuccess, properties: [
238250
Key.millisecondsSinceCustomerInteractionStarted: "\(millisecondsSinceCustomerIteractionStarted)",
239251
])

WooCommerce/Classes/POS/Analytics/WooAnalyticsEvent+PointOfSaleIneligibleUI.swift renamed to Modules/Sources/PointOfSale/Analytics/WooAnalyticsEvent+PointOfSaleIneligibleUI.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import struct WooFoundation.WooAnalyticsEvent
2+
13
extension WooAnalyticsEvent {
24
enum PointOfSaleIneligibleUI {
35
/// Event property key.

WooCommerce/Classes/POS/Card Present Payments/CardPresentPaymentCardReader.swift renamed to Modules/Sources/PointOfSale/Card Present Payments/CardPresentPaymentCardReader.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,9 @@ public struct CardPresentPaymentCardReader: Equatable {
66
/// The reader's battery level, if available.
77
/// This is an unformatted percentage as a float, e.g. 0.0-1.0
88
let batteryLevel: Float?
9+
10+
public init(name: String, batteryLevel: Float?) {
11+
self.name = name
12+
self.batteryLevel = batteryLevel
13+
}
914
}

0 commit comments

Comments
 (0)