AA-24 | Shashidhara | Add kyc document upload repository and api
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
package com.navi.medici.androidCustomerApp.api
|
||||
|
||||
import com.navi.medici.androidCustomerApp.common.RetrofitService
|
||||
import com.navi.medici.androidCustomerApp.models.response.KycDocumentUploadResponse
|
||||
import okhttp3.MultipartBody
|
||||
import retrofit2.Response
|
||||
import retrofit2.http.Multipart
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Part
|
||||
import retrofit2.http.Path
|
||||
|
||||
interface KycDocumentUploadApi {
|
||||
@Multipart
|
||||
@POST("/loan-application-service/loan-applications/{id}/POA")
|
||||
suspend fun submitPoaDocument(@Path("id") id: String, @Part poaDocument: MultipartBody.Part): Response<KycDocumentUploadResponse>
|
||||
|
||||
companion object {
|
||||
// private const val BASE_URL = "https://loan-origination-service.np.navi-tech.in"
|
||||
private const val BASE_URL = "https://77614f4e-45a5-49a3-928c-b232ce7620ef.mock.pstmn.io"
|
||||
operator fun invoke(): KycDocumentUploadApi {
|
||||
return RetrofitService.build(BASE_URL).create(KycDocumentUploadApi::class.java)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.navi.medici.androidCustomerApp.models.response
|
||||
|
||||
data class KycDocumentUploadResponse(
|
||||
val success: Boolean?
|
||||
)
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.navi.medici.androidCustomerApp.repositories
|
||||
|
||||
import com.navi.medici.androidCustomerApp.api.KycDocumentUploadApi
|
||||
import okhttp3.MultipartBody
|
||||
|
||||
class KycDocumentUploadRepository(private val kycDocumentUploadApi: KycDocumentUploadApi) {
|
||||
suspend fun submitPoaDocument(poaDocument: MultipartBody.Part) =
|
||||
suspend { kycDocumentUploadApi.submitPoaDocument("4", poaDocument) }.invoke()
|
||||
}
|
||||
@@ -3,7 +3,6 @@ package com.navi.medici.androidCustomerApp.ui.fragments
|
||||
import android.content.Intent
|
||||
import androidx.lifecycle.ViewModelProviders
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import androidx.fragment.app.Fragment
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
@@ -72,7 +71,9 @@ class KycDocumentUploadFragment : Fragment() {
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||
super.onActivityResult(requestCode, resultCode, data)
|
||||
if (requestCode == fileSelectCode) {
|
||||
Log.i("file choose: $resultCode", data?.dataString.toString())
|
||||
data?.data?.let {
|
||||
viewModel.submitPoaDocument(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,22 @@
|
||||
package com.navi.medici.androidCustomerApp.viewModels
|
||||
|
||||
import android.net.Uri
|
||||
import android.view.View
|
||||
import android.widget.AdapterView
|
||||
import androidx.lifecycle.ViewModel
|
||||
import com.navi.medici.androidCustomerApp.api.KycDocumentUploadApi
|
||||
import com.navi.medici.androidCustomerApp.databinding.KycDocumentUploadFragmentBinding
|
||||
import com.navi.medici.androidCustomerApp.repositories.KycDocumentUploadRepository
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import okhttp3.MultipartBody
|
||||
import java.io.File
|
||||
|
||||
class KycDocumentUploadViewModel : ViewModel() {
|
||||
val proofOfAddresses = arrayOf("Choose POA Document", "Aadhar card", "PAN card")
|
||||
private val kycDocumentUploadRepository = KycDocumentUploadRepository(KycDocumentUploadApi())
|
||||
private val coroutineScope = CoroutineScope(Dispatchers.Main)
|
||||
|
||||
fun onItemSelectedListener(binding: KycDocumentUploadFragmentBinding): AdapterView.OnItemSelectedListener {
|
||||
return object : AdapterView.OnItemSelectedListener {
|
||||
@@ -20,7 +30,17 @@ class KycDocumentUploadViewModel : ViewModel() {
|
||||
if (position == 0) View.INVISIBLE else View.VISIBLE
|
||||
}
|
||||
|
||||
override fun onNothingSelected(parent: AdapterView<*>?) {
|
||||
override fun onNothingSelected(parent: AdapterView<*>?) {}
|
||||
}
|
||||
}
|
||||
|
||||
fun submitPoaDocument(uri: Uri) {
|
||||
uri.path?.let {
|
||||
val poaDocumentFile = File(it)
|
||||
val poaDocument =
|
||||
MultipartBody.Part.createFormData("poa_document", poaDocumentFile.name)
|
||||
coroutineScope.launch {
|
||||
kycDocumentUploadRepository.submitPoaDocument(poaDocument)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user