From 6961a161eb8a0a9dda2e96f2ebdcd78cf73a6517 Mon Sep 17 00:00:00 2001 From: adarshs Date: Thu, 27 Jan 2022 16:48:21 +0530 Subject: [PATCH] Moving cross sell api to sa layer --- .../request/CrossSellProductDetailsRequest.kt | 19 +++++++++++++++++++ .../naviapp/models/response/ProductDetails.kt | 2 +- .../network/retrofit/RetrofitService.kt | 5 +++-- ...oanDisbursementProductPlacementActivity.kt | 9 ++++++++- .../getloan/repositories/ProductRepository.kt | 13 +++++++++++-- .../LoanDisbursementProductPlacementVM.kt | 7 +++++-- 6 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/com/naviapp/models/request/CrossSellProductDetailsRequest.kt diff --git a/app/src/main/java/com/naviapp/models/request/CrossSellProductDetailsRequest.kt b/app/src/main/java/com/naviapp/models/request/CrossSellProductDetailsRequest.kt new file mode 100644 index 0000000000..5840335cde --- /dev/null +++ b/app/src/main/java/com/naviapp/models/request/CrossSellProductDetailsRequest.kt @@ -0,0 +1,19 @@ +package com.naviapp.models.request + +import android.os.Parcelable +import com.google.gson.annotations.SerializedName +import kotlinx.android.parcel.Parcelize + +@Parcelize +data class CrossSellProductDetailsRequest( + @SerializedName("journey") + val journey: String? = null, + @SerializedName("context") + val context: Context? = null +) : Parcelable + +@Parcelize +data class Context( + @SerializedName("loan_application_id") + val loanApplicationId: String? = null +) : Parcelable \ No newline at end of file diff --git a/app/src/main/java/com/naviapp/models/response/ProductDetails.kt b/app/src/main/java/com/naviapp/models/response/ProductDetails.kt index b7702eabd8..f26091260b 100644 --- a/app/src/main/java/com/naviapp/models/response/ProductDetails.kt +++ b/app/src/main/java/com/naviapp/models/response/ProductDetails.kt @@ -33,7 +33,7 @@ data class ProductBanner( val widgetName: String? = WIDGET_NAME, @SerializedName("url") val imageUrl: String? = null, - @SerializedName("deepLinkCta") + @SerializedName("actionData") val actionData: CtaData? = null ) { diff --git a/app/src/main/java/com/naviapp/network/retrofit/RetrofitService.kt b/app/src/main/java/com/naviapp/network/retrofit/RetrofitService.kt index 8a197fa608..deed5de126 100644 --- a/app/src/main/java/com/naviapp/network/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/naviapp/network/retrofit/RetrofitService.kt @@ -739,8 +739,9 @@ interface RetrofitService { @GET("/banks/{code}") suspend fun checkIfscCode(@Path("code") code: String): Response> - @GET("/loan-applications/{loanApplicationReferenceId}/general-insurance") - suspend fun getProductDetails(@Path("loanApplicationReferenceId") referenceId: String): Response> + @POST("/cross-sell") + suspend fun getProductDetails(@Body crossSellProductDetailsRequest: CrossSellProductDetailsRequest): + Response> @GET("/loan-accounts/{loanAccountNumber}/loan-disbursement-details") suspend fun getDelayedDisbursementDetails(@Path("loanAccountNumber") referenceId: String): Response> diff --git a/app/src/main/java/com/naviapp/personalloan/getloan/activities/LoanDisbursementProductPlacementActivity.kt b/app/src/main/java/com/naviapp/personalloan/getloan/activities/LoanDisbursementProductPlacementActivity.kt index 3b287df1b3..808a00ead1 100644 --- a/app/src/main/java/com/naviapp/personalloan/getloan/activities/LoanDisbursementProductPlacementActivity.kt +++ b/app/src/main/java/com/naviapp/personalloan/getloan/activities/LoanDisbursementProductPlacementActivity.kt @@ -47,7 +47,10 @@ class LoanDisbursementProductPlacementActivity : BaseActivity(), HealthInsurance val loanApplicationId = PreferenceManager.getStringPreference(LOAN_APPLICATION_ID) if (!loanApplicationId.isNullOrEmpty()) { showLoader() - viewModel.getProductDetails(loanApplicationId) + viewModel.getProductDetails( + journey = JOURNEY, + referenceId = loanApplicationId + ) } else { viewModel.fetchLoanBasicDetails() } @@ -113,4 +116,8 @@ class LoanDisbursementProductPlacementActivity : BaseActivity(), HealthInsurance override fun onBackPressed() { } + + companion object { + private const val JOURNEY = "personal-loan" + } } \ No newline at end of file diff --git a/app/src/main/java/com/naviapp/personalloan/getloan/repositories/ProductRepository.kt b/app/src/main/java/com/naviapp/personalloan/getloan/repositories/ProductRepository.kt index 626f7b11ea..2fb2a97669 100644 --- a/app/src/main/java/com/naviapp/personalloan/getloan/repositories/ProductRepository.kt +++ b/app/src/main/java/com/naviapp/personalloan/getloan/repositories/ProductRepository.kt @@ -1,12 +1,21 @@ package com.naviapp.personalloan.getloan.repositories +import com.naviapp.models.request.Context +import com.naviapp.models.request.CrossSellProductDetailsRequest import com.naviapp.network.retrofit.ResponseCallback import com.naviapp.utils.retrofitService import com.naviapp.utils.superAppRetrofitService class ProductRepository : ResponseCallback() { - suspend fun getProductDetails(referenceId: String) = - apiResponseCallback(retrofitService().getProductDetails(referenceId)) + suspend fun getProductDetails( + journey: String, + referenceId: String + ) = + apiResponseCallback( + superAppRetrofitService().getProductDetails(CrossSellProductDetailsRequest( + journey = journey, + context = Context(loanApplicationId = referenceId) + ))) suspend fun fetchLoanBasicDetails() = apiResponseCallback(retrofitService().fetchLoanBasicDetails()) diff --git a/app/src/main/java/com/naviapp/personalloan/getloan/viewmodels/LoanDisbursementProductPlacementVM.kt b/app/src/main/java/com/naviapp/personalloan/getloan/viewmodels/LoanDisbursementProductPlacementVM.kt index ba29d8e9b0..4abdfdec77 100644 --- a/app/src/main/java/com/naviapp/personalloan/getloan/viewmodels/LoanDisbursementProductPlacementVM.kt +++ b/app/src/main/java/com/naviapp/personalloan/getloan/viewmodels/LoanDisbursementProductPlacementVM.kt @@ -20,9 +20,12 @@ class LoanDisbursementProductPlacementVM(private val productRepository: ProductR val loanBasicDetails: LiveData get() = _loanBasicDetails - fun getProductDetails(referenceId: String) { + fun getProductDetails(journey: String, referenceId: String) { coroutineScope.launch { - val response = productRepository.getProductDetails(referenceId) + val response = productRepository.getProductDetails( + journey = journey, + referenceId = referenceId + ) if (response.error == null && response.errors.isNullOrEmpty()) { _productDetail.value = response.data } else {