From cde2f4f7ecdb05d52a7225555acf57c1c18add1f Mon Sep 17 00:00:00 2001 From: Hemant Khadase Date: Wed, 21 Dec 2022 18:16:59 +0530 Subject: [PATCH] error issue --- .../bajajfd/interfaces/ApiInterface.kt | 67 ++++++++++++++----- .../bajajfd/repositories/MainRepository.kt | 5 +- .../ui/activity/BajajFdMainActivity.kt | 10 ++- .../ui/fragment/StepOneBajajFDFragment.kt | 6 +- .../bajajfd/viewModel/BajajFDViewModel.kt | 5 +- .../viewModel/StepOneBajajFDViewModel.kt | 5 +- 6 files changed, 70 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt index 6cddebc..11f874f 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt @@ -1,59 +1,90 @@ package com.nivesh.production.bajajfd.interfaces import com.google.gson.JsonObject -import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetRatesRequest import okhttp3.RequestBody import retrofit2.Response -import retrofit2.http.Body -import retrofit2.http.Header -import retrofit2.http.Headers -import retrofit2.http.POST +import retrofit2.http.* interface ApiInterface { + // @FormUrlEncoded @POST("GetRates") - @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") + @Headers( + "token: 636F8F63-06C4-4D95-8562-392B34025FB0", + "Content-Type: application/json", "charset=UTF-8" + ) suspend fun getRates(@Body getRatesRequest: GetRatesRequest): Response @POST("CheckFDCKYC") - @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") + @Headers( + "token: 636F8F63-06C4-4D95-8562-392B34025FB0", + "Content-Type: application/json", "charset=UTF-8" + ) suspend fun checkFDKYC(@Body requestBody: RequestBody): Response @POST("CreateFDApplication") - @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") + @Headers( + "token: 636F8F63-06C4-4D95-8562-392B34025FB0", + "Content-Type: application/json", "charset=UTF-8" + ) suspend fun createFDApp(@Body requestBody: RequestBody): Response @POST("DocumentsUpload") - @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") + @Headers( + "token: 636F8F63-06C4-4D95-8562-392B34025FB0", + "Content-Type: application/json", "charset=UTF-8" + ) suspend fun documentsUpload(@Body requestBody: RequestBody): Response @POST("SaveFDOtherData") - @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") + @Headers( + "token: 636F8F63-06C4-4D95-8562-392B34025FB0", + "Content-Type: application/json", "charset=UTF-8" + ) suspend fun saveFDOtherData(@Body requestBody: RequestBody): Response @POST("GetFDDetails") - @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") + @Headers( + "token: 636F8F63-06C4-4D95-8562-392B34025FB0", + "Content-Type: application/json", "charset=UTF-8" + ) suspend fun getFDDetails(@Body requestBody: RequestBody): Response @POST("UpdateFDPaymentStatus") - @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") + @Headers( + "token: 636F8F63-06C4-4D95-8562-392B34025FB0", + "Content-Type: application/json", "charset=UTF-8" + ) suspend fun updateFDPaymentStatus(@Body requestBody: RequestBody): Response @POST("FinaliseFD") - @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") + @Headers( + "token: 636F8F63-06C4-4D95-8562-392B34025FB0", + "Content-Type: application/json", "charset=UTF-8" + ) suspend fun finaliseFD(@Body requestBody: RequestBody): Response @POST("FinaliseKYC") - @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") + @Headers( + "token: 636F8F63-06C4-4D95-8562-392B34025FB0", + "Content-Type: application/json", "charset=UTF-8" + ) suspend fun finaliseKYC(@Body requestBody: RequestBody): Response @POST("PaymentRequery") - @Headers("token: 636F8F63-06C4-4D95-8562-392B34025FB0") + @Headers( + "token: 636F8F63-06C4-4D95-8562-392B34025FB0", + "Content-Type: application/json", "charset=UTF-8" + ) suspend fun paymentReQuery(@Body requestBody: RequestBody): Response + // @FormUrlEncoded @POST("GetCodes") - @Headers({"token: 636F8F63-06C4-4D95-8562-392B34025FB0"; "Content-Type: multipart/form-data"; "Accept: application/json" }.toString()) - suspend fun getCodes(@Body requestBody: GetCodeRequest): Response - + @Headers( + "token: 636F8F63-06C4-4D95-8562-392B34025FB0", + "Content-Type: application/json", "charset=UTF-8" + ) + suspend fun getCodes(@Body requestBody: RequestBody): Response +// "token: 636F8F63-06C4-4D95-8562-392B34025FB0"; } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt index 5d33d0a..c37c911 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt @@ -3,6 +3,7 @@ package com.nivesh.production.bajajfd.repositories import com.nivesh.production.bajajfd.interfaces.ApiInterface import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.model.GetRatesRequest +import okhttp3.RequestBody class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun getRatesResponse(getRatesRequest: GetRatesRequest) = @@ -35,7 +36,7 @@ class MainRepository constructor(private val apiInterface: ApiInterface) { suspend fun paymentReQueryResponse(getRatesRequest: GetRatesRequest) = apiInterface.getRates(getRatesRequest) - suspend fun getCodesResponse(getCodeRequest: GetCodeRequest) = - apiInterface.getCodes(getCodeRequest) + suspend fun getCodesResponse(requestBody: RequestBody) = + apiInterface.getCodes(requestBody) } \ No newline at end of file diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt index ef7dbba..392523b 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/activity/BajajFdMainActivity.kt @@ -24,6 +24,8 @@ import com.nivesh.production.bajajfd.util.Colors import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.BajajFDViewModel import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel +import okhttp3.MediaType.Companion.toMediaTypeOrNull +import okhttp3.RequestBody.Companion.toRequestBody class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { private lateinit var binding: ActivityBajajFdBinding @@ -44,8 +46,8 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { setContentView(binding.root) //start Repository - val viewModelProviderFactory = GetRatesModelProviderFactory(MainRepository(ApiClient.getApiClient)) - stepOneBajajFDViewModel = ViewModelProvider(this, viewModelProviderFactory)[StepOneBajajFDViewModel::class.java] + // val viewModelProviderFactory = GetRatesModelProviderFactory(MainRepository(ApiClient.getApiClient)) + // stepOneBajajFDViewModel = ViewModelProvider(this, viewModelProviderFactory)[StepOneBajajFDViewModel::class.java] val fdViewModelProviderFactory = FDModelProviderFactory(MainRepository(ApiClient.getApiClient)) viewModel = ViewModelProvider(this, fdViewModelProviderFactory)[BajajFDViewModel::class.java] @@ -140,7 +142,9 @@ class BajajFdMainActivity : AppCompatActivity(), BajajFDInterface { getCodeRequest.Category = "InterestPayoutFreq" getCodeRequest.Language = "EN" getCodeRequest.InputValue = "" - viewModel.getCode(getCodeRequest) + val codeRequest : String = Gson().toJson(getCodeRequest); + val requestBody = codeRequest.toRequestBody("application/json".toMediaTypeOrNull()) + viewModel.getCode(requestBody) viewModel.getRatesMutableData.observe(this) { response -> when (response) { is Resource.Success -> { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt index cc03a14..c4e1e1b 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepOneBajajFDFragment.kt @@ -24,6 +24,8 @@ import com.nivesh.production.bajajfd.ui.activity.BajajFdMainActivity import com.nivesh.production.bajajfd.util.Common import com.nivesh.production.bajajfd.util.Resource import com.nivesh.production.bajajfd.viewModel.StepOneBajajFDViewModel +import okhttp3.MediaType.Companion.toMediaTypeOrNull +import okhttp3.RequestBody.Companion.toRequestBody class StepOneBajajFDFragment : Fragment() { private var _binding: FragmentBajajfdStepOneBinding? = null @@ -138,7 +140,9 @@ class StepOneBajajFDFragment : Fragment() { getCodeRequest.Category = "InterestPayoutFreq" getCodeRequest.Language = "EN" getCodeRequest.InputValue = "" - stepOneBajajFDViewModel.getCode(getCodeRequest) + val codeRequest : String = Gson().toJson(getCodeRequest); + val requestBody = codeRequest.toRequestBody("application/json".toMediaTypeOrNull()) + stepOneBajajFDViewModel.getCode(requestBody) stepOneBajajFDViewModel.getRatesMutableData.observe(this) { response -> when (response) { is Resource.Success -> { diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt index 5b370e4..30a5f3f 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/BajajFDViewModel.kt @@ -8,14 +8,15 @@ import com.nivesh.production.bajajfd.model.GetCodeRequest import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch +import okhttp3.RequestBody class BajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { // TODO: Implement the ViewModel val getRatesMutableData: MutableLiveData> = MutableLiveData() - fun getCode(getCodeRequest: GetCodeRequest) = viewModelScope.launch { + fun getCode(requestBody: RequestBody) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.getCodesResponse(getCodeRequest) + val response = mainRepository.getCodesResponse(requestBody) getRatesMutableData.postValue(handleRatesResponse(response)) } diff --git a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt index 818d622..7b9c58d 100644 --- a/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt +++ b/app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepOneBajajFDViewModel.kt @@ -9,6 +9,7 @@ import com.nivesh.production.bajajfd.model.GetRatesRequest import com.nivesh.production.bajajfd.repositories.MainRepository import com.nivesh.production.bajajfd.util.Resource import kotlinx.coroutines.launch +import okhttp3.RequestBody class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : ViewModel() { // TODO: Implement the ViewModel @@ -20,9 +21,9 @@ class StepOneBajajFDViewModel(private val mainRepository: MainRepository) : View getRatesMutableData.postValue(handleRatesResponse(response)) } - fun getCode(getCodeRequest: GetCodeRequest) = viewModelScope.launch { + fun getCode(requestBody: RequestBody) = viewModelScope.launch { getRatesMutableData.postValue(Resource.Loading()) - val response = mainRepository.getCodesResponse(getCodeRequest) + val response = mainRepository.getCodesResponse(requestBody) getRatesMutableData.postValue(handleRatesResponse(response)) }