diff --git a/personalization-sdk/src/main/kotlin/com/personalization/SDK.kt b/personalization-sdk/src/main/kotlin/com/personalization/SDK.kt index 15f97882..5a26bd6c 100644 --- a/personalization-sdk/src/main/kotlin/com/personalization/SDK.kt +++ b/personalization-sdk/src/main/kotlin/com/personalization/SDK.kt @@ -9,6 +9,7 @@ import com.google.firebase.messaging.RemoteMessage import com.personalization.Params.InternalParameter import com.personalization.Params.TrackEvent import com.personalization.api.OnApiCallbackListener +import com.personalization.api.managers.CartManager import com.personalization.api.managers.InAppNotificationManager import com.personalization.api.managers.ProductsManager import com.personalization.api.managers.RecommendationManager @@ -59,6 +60,9 @@ open class SDK { @Inject lateinit var productsManager: ProductsManager + @Inject + lateinit var cartManager: CartManager + @Inject lateinit var trackEventManager: TrackEventManager diff --git a/personalization-sdk/src/main/kotlin/com/personalization/api/managers/CartManager.kt b/personalization-sdk/src/main/kotlin/com/personalization/api/managers/CartManager.kt new file mode 100644 index 00000000..4297af0d --- /dev/null +++ b/personalization-sdk/src/main/kotlin/com/personalization/api/managers/CartManager.kt @@ -0,0 +1,10 @@ +package com.personalization.api.managers + +import com.personalization.api.OnApiCallbackListener + +interface CartManager { + + fun getClientShoppingCart( + listener: OnApiCallbackListener? + ) +} diff --git a/personalization-sdk/src/main/kotlin/com/personalization/api/managers/ProductsManager.kt b/personalization-sdk/src/main/kotlin/com/personalization/api/managers/ProductsManager.kt index 14d9165a..1709d8af 100644 --- a/personalization-sdk/src/main/kotlin/com/personalization/api/managers/ProductsManager.kt +++ b/personalization-sdk/src/main/kotlin/com/personalization/api/managers/ProductsManager.kt @@ -19,8 +19,4 @@ interface ProductsManager { itemId: String, listener: OnApiCallbackListener? ) - - fun getClientShoppingCart( - listener: OnApiCallbackListener? - ) } diff --git a/personalization-sdk/src/main/kotlin/com/personalization/di/SdkModule.kt b/personalization-sdk/src/main/kotlin/com/personalization/di/SdkModule.kt index 7abe68de..1af6b1ac 100644 --- a/personalization-sdk/src/main/kotlin/com/personalization/di/SdkModule.kt +++ b/personalization-sdk/src/main/kotlin/com/personalization/di/SdkModule.kt @@ -2,11 +2,13 @@ package com.personalization.di import android.content.Context import com.personalization.RegisterManager +import com.personalization.api.managers.CartManager import com.personalization.api.managers.InAppNotificationManager import com.personalization.api.managers.ProductsManager import com.personalization.api.managers.RecommendationManager import com.personalization.api.managers.SearchManager import com.personalization.api.managers.TrackEventManager +import com.personalization.features.cart.CartManagerImpl import com.personalization.features.inAppNotification.impl.InAppNotificationManagerImpl import com.personalization.features.notification.domain.data.NotificationDataExtractor import com.personalization.features.products.impl.ProductsManagerImpl @@ -65,6 +67,14 @@ class SdkModule { sendNetworkMethodUseCase = sendNetworkMethodUseCase ) + @Singleton + @Provides + fun provideCartManager( + sendNetworkMethodUseCase: SendNetworkMethodUseCase + ): CartManager = CartManagerImpl( + sendNetworkMethodUseCase = sendNetworkMethodUseCase + ) + @Singleton @Provides fun provideTrackEventManager( diff --git a/personalization-sdk/src/main/kotlin/com/personalization/features/cart/CartManagerImpl.kt b/personalization-sdk/src/main/kotlin/com/personalization/features/cart/CartManagerImpl.kt new file mode 100644 index 00000000..f117e338 --- /dev/null +++ b/personalization-sdk/src/main/kotlin/com/personalization/features/cart/CartManagerImpl.kt @@ -0,0 +1,24 @@ +package com.personalization.features.cart + +import com.personalization.Params +import com.personalization.api.OnApiCallbackListener +import com.personalization.api.managers.CartManager +import com.personalization.sdk.domain.usecases.network.SendNetworkMethodUseCase +import javax.inject.Inject + +internal class CartManagerImpl @Inject constructor( + private val sendNetworkMethodUseCase: SendNetworkMethodUseCase, +) : CartManager { + + override fun getClientShoppingCart(listener: OnApiCallbackListener?) { + sendNetworkMethodUseCase.getAsync( + method = GET_CLIENT_SHOPPING_CART, + params = Params().build(), + listener = listener + ) + } + + companion object { + const val GET_CLIENT_SHOPPING_CART = "products/cart" + } +} diff --git a/personalization-sdk/src/main/kotlin/com/personalization/features/products/impl/ProductsManagerImpl.kt b/personalization-sdk/src/main/kotlin/com/personalization/features/products/impl/ProductsManagerImpl.kt index 45a02ba7..8326edbd 100644 --- a/personalization-sdk/src/main/kotlin/com/personalization/features/products/impl/ProductsManagerImpl.kt +++ b/personalization-sdk/src/main/kotlin/com/personalization/features/products/impl/ProductsManagerImpl.kt @@ -49,14 +49,6 @@ internal class ProductsManagerImpl @Inject constructor( ) } - override fun getClientShoppingCart(listener: OnApiCallbackListener?) { - sendNetworkMethodUseCase.getAsync( - method = GET_CLIENT_SHOPPING_CART, - params = Params().build(), - listener = listener - ) - } - private fun Params.buildParams( itemId: String? = null, brands: String? = null, @@ -84,7 +76,6 @@ internal class ProductsManagerImpl @Inject constructor( companion object { const val GET_PRODUCT_LIST_REQUEST = "products" const val GET_PRODUCT_INFO_REQUEST = "products/get" - const val GET_CLIENT_SHOPPING_CART = "products/cart" private const val LIMIT_KEY = "limit" private const val PAGE_KEY = "page"