Created
October 12, 2023 17:13
-
-
Save jordanbeck/ad35f543c74b9dfbfefb6af06b036f47 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
| @@ -5,6 +5,7 @@ import com.etsy.android.lib.logger.elk.grafana.Grafana | |
| import com.etsy.android.lib.logger.logcat | |
| import com.etsy.android.ui.cart.refactor.CartRefactorRepository | |
| import com.etsy.android.ui.cart.refactor.CartRefactorResult | |
| +import com.etsy.android.ui.cart.refactor.models.network.CartShopCouponResponse | |
| import kotlinx.coroutines.CoroutineDispatcher | |
| import kotlinx.coroutines.withContext | |
| import javax.inject.Inject | |
| @@ -24,7 +25,11 @@ class ComboEndpointHandler @Inject constructor( | |
| try { | |
| val result = cartRefactorRepository.fetchCart(apiPath) | |
| when (result) { | |
| - is CartRefactorResult.Success -> incrementMetric(METRIC_LOAD_SUCCESS) | |
| + is CartRefactorResult.Success -> { | |
| + incrementMetric(METRIC_LOAD_SUCCESS) | |
| + // TODO: TESTING CALL. REMOVE BEFORE MERGING! | |
| + return@withContext injectTestCoupons(result) | |
| + } | |
| is CartRefactorResult.Failure -> handleError(result.error) | |
| } | |
| result | |
| @@ -48,6 +53,53 @@ class ComboEndpointHandler @Inject constructor( | |
| } | |
| } | |
| + // TODO: THIS IS A TEST FUNCTION TO ADD COUPONS. REMOVE BEFORE MERGING! | |
| + private fun injectTestCoupons(result: CartRefactorResult.Success): CartRefactorResult.Success { | |
| + val cart = result.response.nonSdlResponse?.cartGroups?.first()?.shopCarts?.first()?.copy( | |
| + coupons = listOf( | |
| + CartShopCouponResponse( | |
| + snudgeType = "coupon_signals_plain", | |
| + discount = "20% off", | |
| + text = "with code THANKYOU", | |
| + body = "Applies to eligible items", | |
| + couponCode = "THANKYOU", | |
| + signalName = "cart_eligible_coupon", | |
| + analyticsId = "", | |
| + applied = false, | |
| + links = null | |
| + ), | |
| + CartShopCouponResponse( | |
| + snudgeType = "coupon_signals_plain", | |
| + discount = "10% off", | |
| + text = "with code TENOFF", | |
| + body = "Applies to eligible items", | |
| + signalName = "cart_eligible_coupon", | |
| + analyticsId = "", | |
| + applied = true, | |
| + amount = "-$3.99", | |
| + links = null | |
| + ) | |
| + ) | |
| + ) ?: throw IllegalStateException("Cart should not be null") | |
| + | |
| + val cartGroup = result.response.nonSdlResponse.cartGroups.first().copy( | |
| + // Set first shop cart | |
| + shopCarts = result.response.nonSdlResponse.cartGroups.first().shopCarts.toMutableList().apply { | |
| + set(0, cart) | |
| + } | |
| + ) | |
| + | |
| + return result.copy( | |
| + response = result.response.copy( | |
| + nonSdlResponse = result.response.nonSdlResponse.copy( | |
| + cartGroups = result.response.nonSdlResponse.cartGroups.toMutableList().apply { | |
| + set(0, cartGroup) | |
| + } | |
| + ) | |
| + ) | |
| + ) | |
| + } | |
| + | |
| companion object { | |
| /** | |
| * 700k hits from Android per day for the cart endpoint, so 2% will get us ~14k hits. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment