Skip to content

Commit c95f8ab

Browse files
committed
Add limit reached and confirmed events
1 parent 7146a53 commit c95f8ab

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

WooCommerce/Classes/ViewRelated/Products/Variations/GenerateAllVariationsUseCase.swift

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,13 @@ final class GenerateAllVariationsUseCase {
99
///
1010
private let stores: StoresManager
1111

12-
init(stores: StoresManager) {
12+
/// Analytics tracker.
13+
///
14+
private let analytics: Analytics
15+
16+
init(stores: StoresManager, analytics: Analytics = ServiceLocator.analytics) {
1317
self.stores = stores
18+
self.analytics = analytics
1419
}
1520

1621
/// Generates all missing variations for a product. Up to 100 variations.
@@ -22,7 +27,7 @@ final class GenerateAllVariationsUseCase {
2227

2328
// Fetch Previous variations
2429
onStateChanged(.fetching)
25-
fetchAllVariations(of: product) { result in
30+
fetchAllVariations(of: product) { [analytics] result in
2631
switch result {
2732
case .success(let existingVariations):
2833

@@ -31,6 +36,7 @@ final class GenerateAllVariationsUseCase {
3136

3237
// Guard for 100 variation limit
3338
guard variationsToGenerate.count <= 100 else {
39+
analytics.track(event: .Variations.productVariationGenerationLimitReached(count: Int64(variationsToGenerate.count)))
3440
return onStateChanged(.error(.tooManyVariations(variationCount: variationsToGenerate.count)))
3541
}
3642

@@ -46,6 +52,8 @@ final class GenerateAllVariationsUseCase {
4652
return onStateChanged(.canceled)
4753
}
4854

55+
analytics.track(event: .Variations.productVariationGenerationConfirmed(count: Int64(variationsToGenerate.count)))
56+
4957
// Create variations remotely
5058
onStateChanged(.creating)
5159
self.createVariationsRemotely(for: product, variations: variationsToGenerate) { result in

0 commit comments

Comments
 (0)