| @ -0,0 +1,3 @@ | |||
| data class GetAllRates( | |||
| val Response: Response | |||
| ) | |||
| @ -0,0 +1,7 @@ | |||
| data class ROIDatalist( | |||
| val Frequency: String, | |||
| val Provider: String, | |||
| val ROI: Double, | |||
| val Tenure: String, | |||
| val Type: String | |||
| ) | |||
| @ -0,0 +1,7 @@ | |||
| data class Response( | |||
| val Errors: List<Any>, | |||
| val Message: String, | |||
| val ROIDatalist: List<ROIDatalist>, | |||
| val Status: String, | |||
| val StatusCode: Int | |||
| ) | |||
| @ -1,36 +0,0 @@ | |||
| package com.nivesh.production.bajajfd.`interface` | |||
| import okhttp3.RequestBody | |||
| import retrofit2.http.Body | |||
| import retrofit2.http.POST | |||
| interface ApiInterface { | |||
| @POST("GetRates") | |||
| suspend fun getRates(@Body requestBody: RequestBody) | |||
| @POST("CheckFDCKYC") | |||
| suspend fun checkFDKYC(@Body requestBody: RequestBody) | |||
| @POST("CreateFDApplication") | |||
| suspend fun createFDApp(@Body requestBody: RequestBody) | |||
| @POST("DocumentsUpload") | |||
| suspend fun documentsUpload(@Body requestBody: RequestBody) | |||
| @POST("SaveFDOtherData") | |||
| suspend fun saveFDOtherData(@Body requestBody: RequestBody) | |||
| @POST("GetFDDetails") | |||
| suspend fun getFDDetails(@Body requestBody: RequestBody) | |||
| @POST("UpdateFDPaymentStatus") | |||
| suspend fun updateFDPaymentStatus(@Body requestBody: RequestBody) | |||
| @POST("FinaliseFD") | |||
| suspend fun finaliseFD(@Body requestBody: RequestBody) | |||
| @POST("FinaliseKYC") | |||
| suspend fun finaliseKYC(@Body requestBody: RequestBody) | |||
| } | |||
| @ -0,0 +1,45 @@ | |||
| package com.nivesh.production.bajajfd.interfaces | |||
| import GetRatesResponse | |||
| import com.nivesh.production.bajajfd.model.GetRatesRequest | |||
| import okhttp3.RequestBody | |||
| import retrofit2.Response | |||
| import retrofit2.http.Body | |||
| import retrofit2.http.POST | |||
| interface ApiInterface { | |||
| @POST("GetRates") | |||
| suspend fun getRates(@Body getRatesRequest: GetRatesRequest): Response<GetRatesResponse> | |||
| @POST("CheckFDCKYC") | |||
| suspend fun checkFDKYC(@Body requestBody: RequestBody) : Response<GetRatesResponse> | |||
| @POST("CreateFDApplication") | |||
| suspend fun createFDApp(@Body requestBody: RequestBody): Response<GetRatesResponse> | |||
| @POST("DocumentsUpload") | |||
| suspend fun documentsUpload(@Body requestBody: RequestBody): Response<GetRatesResponse> | |||
| @POST("SaveFDOtherData") | |||
| suspend fun saveFDOtherData(@Body requestBody: RequestBody): Response<GetRatesResponse> | |||
| @POST("GetFDDetails") | |||
| suspend fun getFDDetails(@Body requestBody: RequestBody): Response<GetRatesResponse> | |||
| @POST("UpdateFDPaymentStatus") | |||
| suspend fun updateFDPaymentStatus(@Body requestBody: RequestBody): Response<GetRatesResponse> | |||
| @POST("FinaliseFD") | |||
| suspend fun finaliseFD(@Body requestBody: RequestBody): Response<GetRatesResponse> | |||
| @POST("FinaliseKYC") | |||
| suspend fun finaliseKYC(@Body requestBody: RequestBody): Response<GetRatesResponse> | |||
| @POST("PaymentRequery") | |||
| suspend fun paymentReQuery(@Body requestBody: RequestBody): Response<GetRatesResponse> | |||
| @POST("GetCodes") | |||
| suspend fun getCodes(@Body requestBody: RequestBody): Response<GetRatesResponse> | |||
| } | |||
| @ -1,4 +1,4 @@ | |||
| package com.nivesh.production.bajajfd.`interface` | |||
| package com.nivesh.production.bajajfd.interfaces | |||
| interface BajajFDInterface { | |||
| fun stepOneApi(data: String?) | |||
| @ -0,0 +1,9 @@ | |||
| package com.nivesh.production.bajajfd.model | |||
| import com.google.gson.annotations.SerializedName | |||
| data class GetRatesRequest( | |||
| @SerializedName("FDProvider") var fdProvider: String? = null, | |||
| @SerializedName("Frequency") var frequency: String? = null, | |||
| @SerializedName("Type") var type: String? = null | |||
| ) | |||
| @ -0,0 +1,3 @@ | |||
| data class GetRatesResponse( | |||
| val Response: Response | |||
| ) | |||
| @ -0,0 +1,7 @@ | |||
| data class ROIDatalist( | |||
| val Frequency: String, | |||
| val Provider: String, | |||
| val ROI: Double, | |||
| val Tenure: String, | |||
| val Type: String | |||
| ) | |||
| @ -0,0 +1,7 @@ | |||
| data class Response( | |||
| val Errors: List<Any>, | |||
| val Message: String, | |||
| val ROIDatalist: List<ROIDatalist>, | |||
| val Status: String, | |||
| val StatusCode: Int | |||
| ) | |||
| @ -0,0 +1,9 @@ | |||
| package com.nivesh.production.bajajfd.repositories | |||
| import com.nivesh.production.bajajfd.interfaces.ApiInterface | |||
| import com.nivesh.production.bajajfd.model.GetRatesRequest | |||
| class MainRepository constructor(private val apiInterface: ApiInterface) { | |||
| suspend fun getAllRatesResponse(getRatesRequest: GetRatesRequest) = | |||
| apiInterface.getRates(getRatesRequest) | |||
| } | |||
| @ -0,0 +1,15 @@ | |||
| package com.nivesh.production.bajajfd.ui.providerfactory | |||
| import androidx.lifecycle.ViewModel | |||
| import androidx.lifecycle.ViewModelProvider | |||
| import com.nivesh.production.bajajfd.repositories.MainRepository | |||
| import com.nivesh.production.bajajfd.viewModel.StepOneViewModel | |||
| class GetRatesModelProviderFactory (val mainRepository: MainRepository) : ViewModelProvider.Factory { | |||
| // @Override fun <T : ViewModel?> create(modelClass: Class<T>): T { | |||
| // return StepOneViewModel(mainRepository) as T | |||
| // } | |||
| override fun <T : ViewModel> create(modelClass: Class<T>): T { | |||
| return StepOneViewModel(mainRepository) as T | |||
| } | |||
| } | |||
| @ -1,7 +1,34 @@ | |||
| package com.nivesh.production.bajajfd.viewModel | |||
| import GetRatesResponse | |||
| import Response | |||
| import androidx.lifecycle.MutableLiveData | |||
| import androidx.lifecycle.ViewModel | |||
| import androidx.lifecycle.viewModelScope | |||
| 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 | |||
| class StepOneViewModel : ViewModel() { | |||
| class StepOneViewModel(private val mainRepository: MainRepository) : ViewModel() { | |||
| // TODO: Implement the ViewModel | |||
| // var getRateResponse: GetRatesResponse? = null | |||
| val getRatesMutableData: MutableLiveData<Resource<GetRatesResponse>> = MutableLiveData() | |||
| fun getAllRates(getRatesRequest: GetRatesRequest) = viewModelScope.launch { | |||
| getRatesMutableData.postValue(Resource.Loading()) | |||
| val response = mainRepository.getAllRatesResponse(getRatesRequest) | |||
| getRatesMutableData.postValue(handleRatesResponse(response)) | |||
| } | |||
| private fun handleRatesResponse(response: retrofit2.Response<GetRatesResponse>): Resource<GetRatesResponse> { | |||
| if (response.isSuccessful) { | |||
| response.body()?.let { resultResponse -> | |||
| return Resource.Success(resultResponse) | |||
| } | |||
| } | |||
| return Resource.Error(response.message()) | |||
| } | |||
| } | |||
Powered by TurnKey Linux.