From c2b57b28b0506ce12bce12741bf46d3a3cca0d87 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 2 Nov 2022 17:52:24 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../converters/ShopOrderToEventConverter.kt | 27 ++++++++++++++ .../tap/common/analytics/events/Shop.kt | 37 ++++--------------- .../appsFlyer/AppsFlyerAnalyticsHandler.kt | 8 ++-- .../firebase/FirebaseAnalyticsHandler.kt | 8 ++-- 4 files changed, 43 insertions(+), 37 deletions(-) create mode 100644 app/src/main/java/com/tangem/tap/common/analytics/converters/ShopOrderToEventConverter.kt diff --git a/app/src/main/java/com/tangem/tap/common/analytics/converters/ShopOrderToEventConverter.kt b/app/src/main/java/com/tangem/tap/common/analytics/converters/ShopOrderToEventConverter.kt new file mode 100644 index 0000000000..ddbd1683bd --- /dev/null +++ b/app/src/main/java/com/tangem/tap/common/analytics/converters/ShopOrderToEventConverter.kt @@ -0,0 +1,27 @@ +package com.tangem.tap.common.analytics.converters + +import com.shopify.buy3.Storefront +import com.tangem.common.Converter +import com.tangem.tap.common.analytics.events.Shop +import com.tangem.tap.common.shop.data.ProductType + +/** +[REDACTED_AUTHOR] + */ +class ShopOrderToEventConverter : Converter, Shop.Purchased> { + + override fun convert(value: Pair): Shop.Purchased { + val order = value.first + val productType = value.second + + val sku = order.lineItems.edges.firstOrNull()?.node?.variant?.sku ?: productType.sku + val count = when (productType) { + ProductType.WALLET_2_CARDS -> "2" + ProductType.WALLET_3_CARDS -> "3" + } + val amount = "${order.totalPriceV2.amount} ${order.totalPriceV2.currencyCode.name}" + val code = (order.discountApplications.edges.firstOrNull()?.node as? Storefront.DiscountCodeApplication)?.code + + return Shop.Purchased(sku, count, amount, code) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/Shop.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/Shop.kt index 90fdf6e08f..9634f2929b 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/events/Shop.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/Shop.kt @@ -1,9 +1,6 @@ package com.tangem.tap.common.analytics.events -import com.shopify.buy3.Storefront -import com.tangem.common.Converter import com.tangem.tap.common.extensions.filterNotNull -import com.tangem.tap.common.shop.data.ProductType /** [REDACTED_AUTHOR] @@ -15,36 +12,18 @@ sealed class Shop( class ScreenOpened : IntroductionProcess("Shop Screen Opened") - class Purchased(params: Map) : Shop( + class Purchased(sku: String, count: String, amount: String, couponCode: String?) : Shop( event = "Purchased", - params = params, + params = mapOf( + "SKU" to sku, + "Count" to count, + "Amount" to amount, + "Coupon Code" to couponCode, + ).filterNotNull(), ) class Redirected(partnerName: String) : Shop( event = "Redirected", params = mapOf("Partner" to partnerName), ) -} - -class OrderToParamsConverter : Converter, Map> { - override fun convert(value: Pair): Map { - val order = value.first - val productType = value.second - - val code = (order.discountApplications.edges.firstOrNull()?.node as? Storefront.DiscountCodeApplication)?.code - val sku = order.lineItems.edges.firstOrNull()?.node?.variant?.sku ?: productType.sku - - val count = when (productType) { - ProductType.WALLET_2_CARDS -> "2" - ProductType.WALLET_3_CARDS -> "3" - } - val amount = "${order.totalPriceV2.amount} ${order.totalPriceV2.currencyCode.name}" - - return mapOf( - "Coupon Code" to code, - "SKU" to sku, - "Count" to count, - "Amount" to amount, - ).filterNotNull() - } -} +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/common/analytics/handlers/appsFlyer/AppsFlyerAnalyticsHandler.kt b/app/src/main/java/com/tangem/tap/common/analytics/handlers/appsFlyer/AppsFlyerAnalyticsHandler.kt index 8264b4c501..fe23cfd753 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/handlers/appsFlyer/AppsFlyerAnalyticsHandler.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/handlers/appsFlyer/AppsFlyerAnalyticsHandler.kt @@ -4,8 +4,7 @@ import com.shopify.buy3.Storefront import com.tangem.tap.common.analytics.api.AnalyticsEventHandler import com.tangem.tap.common.analytics.api.AnalyticsHandlerBuilder import com.tangem.tap.common.analytics.api.ShopifyOrderEventHandler -import com.tangem.tap.common.analytics.events.OrderToParamsConverter -import com.tangem.tap.common.analytics.events.Shop +import com.tangem.tap.common.analytics.converters.ShopOrderToEventConverter import com.tangem.tap.common.shop.data.ProductType class AppsFlyerAnalyticsHandler( @@ -19,8 +18,9 @@ class AppsFlyerAnalyticsHandler( } override fun send(order: Storefront.Order, productType: ProductType) { - val eventParams = OrderToParamsConverter().convert(order to productType) - send(Shop.Purchased(eventParams)) + //TODO: make sending this event through filters + val event = ShopOrderToEventConverter().convert(order to productType) + send(event) } companion object { diff --git a/app/src/main/java/com/tangem/tap/common/analytics/handlers/firebase/FirebaseAnalyticsHandler.kt b/app/src/main/java/com/tangem/tap/common/analytics/handlers/firebase/FirebaseAnalyticsHandler.kt index 1c79942d4f..f2abc8ca76 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/handlers/firebase/FirebaseAnalyticsHandler.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/handlers/firebase/FirebaseAnalyticsHandler.kt @@ -13,8 +13,7 @@ import com.tangem.tap.common.analytics.api.SdkErrorEventHandler import com.tangem.tap.common.analytics.api.ShopifyOrderEventHandler import com.tangem.tap.common.analytics.converters.BlockchainSdkErrorConverter import com.tangem.tap.common.analytics.converters.CardSdkErrorConverter -import com.tangem.tap.common.analytics.events.OrderToParamsConverter -import com.tangem.tap.common.analytics.events.Shop +import com.tangem.tap.common.analytics.converters.ShopOrderToEventConverter import com.tangem.tap.common.shop.data.ProductType class FirebaseAnalyticsHandler( @@ -59,8 +58,9 @@ class FirebaseAnalyticsHandler( } override fun send(order: Storefront.Order, productType: ProductType) { - val eventParams = OrderToParamsConverter().convert(order to productType) - send(Shop.Purchased(eventParams)) + //TODO: make sending this event through filters + val event = ShopOrderToEventConverter().convert(order to productType) + send(event) } companion object {