@ -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.