Browse Source

added url modification and api for bank details and xml change

PankajBranch
Hemant Khadase 2 years ago
parent
commit
756a86ba8d
9 changed files with 158 additions and 109 deletions
  1. +2
    -1
      app/src/main/AndroidManifest.xml
  2. +29
    -29
      app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt
  3. +1
    -6
      app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt
  4. +10
    -0
      app/src/main/java/com/nivesh/production/bajajfd/model/IFSCCODEServiceResult.kt
  5. +2
    -2
      app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt
  6. +86
    -64
      app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt
  7. +20
    -2
      app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt
  8. +1
    -1
      app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt
  9. +7
    -4
      app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt

+ 2
- 1
app/src/main/AndroidManifest.xml View File

@ -19,9 +19,10 @@
android:required="false" />
<application
android:allowBackup="true"
android:allowBackup="false"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/appName"
android:roundIcon="@mipmap/ic_launcher_round"


+ 29
- 29
app/src/main/java/com/nivesh/production/bajajfd/interfaces/ApiInterface.kt View File

@ -8,159 +8,159 @@ import retrofit2.http.*
interface ApiInterface {
@POST("WebApi_Bajaj/api/GetRates")
@POST("GetRates")
suspend fun getRates(
@Body getRatesRequest: GetRatesRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/CheckFDCKYC")
@POST("CheckFDCKYC")
suspend fun checkFDKYC(
@Body checkFDKYCRequest: CheckFDKYCRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/CreateFDApplication")
@POST("CreateFDApplication")
suspend fun createFDApp(
@Body createFDRequest: CreateFDRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/DocumentsUpload")
@POST("DocumentsUpload")
suspend fun documentsUpload(
@Body requestBody: DocumentUpload,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/SaveFDOtherData")
@POST("SaveFDOtherData")
suspend fun saveFDOtherData(
@Body requestBody: SaveFDOtherDataRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetFDDetails")
@POST("GetFDDetails")
suspend fun getFDDetails(
@Body requestBody: GetFDDetailsRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/UpdateFDPaymentStatus")
@POST("UpdateFDPaymentStatus")
suspend fun updateFDPaymentStatus(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/FinaliseFD")
@POST("FinaliseFD")
suspend fun finaliseFD(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/FinaliseKYC")
@POST("FinaliseKYC")
suspend fun finaliseKYC(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/PaymentRequery")
@POST("PaymentRequery")
suspend fun paymentReQuery(
@Body requestBody: RequestBody,
@Header("token") token: String
): Response<JsonObject>
// @FormUrlEncoded
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun getCodes(
@Body requestBody: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/CalculateFDMaturityAmount")
@POST("CalculateFDMaturityAmount")
suspend fun getCalculateFDMaturityAmount(
@Body requestBody: GetMaturityAmountRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/PanCheck_S")
@POST("PanCheck_S")
suspend fun panCheckApi(
@Body panCheck: PanCheckRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/getFDStepsCount")
@POST("getFDStepsCount")
suspend fun getFDStepsCount(
@Body fdStepsCountRequest: FDStepsCountRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetClientDetailV2_S")
@POST("GetClientDetailV2_S")
suspend fun getClientDetails(
@Body getClientDetailsRequest: getClientDetailsRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun titleApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun genderApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun annualIncomeApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun relationShipApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun maritalStatusApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun occupationApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetStateMaster")
@POST("GetStateMaster")
suspend fun stateApi(@Header("token") token: String): Response<JsonObject>
@POST("WebApi_Bajaj/api/GetCity")
@POST("GetCity")
suspend fun cityApi(
@Body cityRequest: CityRequest,
@Header("token") token: String
): Response<JsonObject>
@GET("WebAPI_Bajaj/api/GetFDBankList?FDProvider=Bajaj")
@GET("GetFDBankList?FDProvider=Bajaj")
suspend fun bankListApi(@Header("token") token: String): Response<JsonObject>
@GET("WebApi/api/GetIFSC_Autofill?")
@GET("GetIFSC_Autofill?")
suspend fun getIFSCApi(@Query("prefix") ifsc : String): Response<JsonObject>
@GET("WebApi_Bajaj/api/GetBankDetailsFromIFSC?")
suspend fun getIFSCDetailsApi(@Query("ifscCode") ifsc : String): Response<JsonObject>
@GET("GetbankNames")
suspend fun getIFSCBankDetailsApi(@Query( "bankname") ifsc : String, @Header("token") token: String): Response<String>
@POST("WebApi_Bajaj/api/GetCodes")
@POST("GetCodes")
suspend fun payModeApi(
@Body getCodeRequest: GetCodeRequest,
@Header("token") token: String
): Response<JsonObject>
@POST("WebApi_Bajaj/api/BankValidationAPI_S")
@POST("BankValidationAPI_S")
suspend fun bankValidationApi(
@Body bankValidationApiRequest: BankValidationApiRequest,
@Header("token") token: String


+ 1
- 6
app/src/main/java/com/nivesh/production/bajajfd/model/GetIFSCCodeResponse.kt View File

@ -1,10 +1,5 @@
package com.nivesh.production.bajajfd.model
data class GetIFSCCodeResponse(
val ADDRESS: String,
val BANK: String,
val BRANCH: String,
val IFSC: String,
val MICR: String,
val Response: ResponseXXXXXXXXX
val IFSCCODEServiceResult: List<IFSCCODEServiceResult>
)

+ 10
- 0
app/src/main/java/com/nivesh/production/bajajfd/model/IFSCCODEServiceResult.kt View File

@ -0,0 +1,10 @@
package com.nivesh.production.bajajfd.model
data class IFSCCODEServiceResult(
val BankBranch: String,
val BnkDescr: String,
val BnkShrtDescr: String,
val Code: String,
val IfscCode: String,
val intCustbnk_pk: String
)

+ 2
- 2
app/src/main/java/com/nivesh/production/bajajfd/repositories/MainRepository.kt View File

@ -80,8 +80,8 @@ class MainRepository constructor(private val apiInterface: ApiInterface) {
suspend fun ifscCodeCheck(str: String) =
apiInterface.getIFSCApi(str)
suspend fun ifscCodeDetailsCheck(str: String) =
apiInterface.getIFSCDetailsApi(str)
suspend fun ifscCodeBankDetailsCheck(str: String, token: String) =
apiInterface.getIFSCBankDetailsApi(str, token)
suspend fun payModeCheck(getCodeRequest: GetCodeRequest, token: String) =
apiInterface.payModeApi(getCodeRequest, token)


+ 86
- 64
app/src/main/java/com/nivesh/production/bajajfd/ui/fragment/StepTwoBajajFDFragment.kt View File

@ -525,9 +525,15 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.btnAddBank.setOnClickListener {
if (validateBank()) {
val fullName= binding.edtFirstName.text.toString().plus(" ").plus(binding.edtMiddleName.text.toString()).plus(" ").plus(binding.edtLastName.text.toString())
verifyAccountNo(
binding.edtAccountNumber.text.toString(), binding.edtIFSC.text.toString(), fullName, binding.edtMobileNumber.text.toString(), 1)
verifyAccountNo(
binding.edtAccountNumber.text.toString(),
binding.edtIFSC.text.toString(),
binding.edtFirstName.text.toString().plus(" ")
.plus(binding.edtMiddleName.text.toString()).plus(" ")
.plus(binding.edtLastName.text.toString()),
binding.edtMobileNumber.text.toString(),
1
)
}
}
@ -544,18 +550,29 @@ class StepTwoBajajFDFragment : BaseFragment() {
binding.addBankDetail.setOnClickListener {
if (binding.llBankDetails.visibility == View.GONE) {
binding.llBankDetails.visibility = View.VISIBLE
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_minus,0)
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.ic_minus,
0
)
} else {
binding.llBankDetails.visibility = View.GONE
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.ic_add_icon,0)
binding.addBankDetail.setCompoundDrawablesWithIntrinsicBounds(
0,
0,
R.drawable.ic_add_icon,
0
)
}
}
titleApi()
setUpRecyclerView(
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist,
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1)
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.clientDetails?.clientMasterMFD?.CLIENT_ACCNO1
)
binding.tvPersonalDetails.setOnClickListener {
if (binding.llPersonalDetail.visibility == View.VISIBLE) {
@ -772,7 +789,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
private fun ifscCodeCheckApi(ifsc: String) {
if (ifsc.length ==11) {
if (ifsc.length >= 10) {
stepTwoBajajFDViewModel.ifscCodeApi(ifsc, activity as BajajFdMainActivity)
stepTwoBajajFDViewModel.getIfscCodeCheckMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
@ -796,23 +813,16 @@ class StepTwoBajajFDFragment : BaseFragment() {
listOfIFSC
)
binding.edtIFSC.setAdapter(adapter)
binding.edtIFSC.setOnItemClickListener { _, _, position, _ ->
if (listOfIFSC.size > 0) {
binding.edtIFSC.setText(adapter.getItem(position).toString())
binding.edtIFSC.setText(
adapter.getItem(position).toString()
)
binding.edtIFSC.setSelection(binding.edtIFSC.text.toString().length)
getIFSCDetailsApi(binding.edtIFSC.toString())
getIFSCDetailsApi(binding.edtIFSC.text.toString())
}
}
}
}
// 650 -> refreshToken()
else -> {
@ -850,31 +860,20 @@ class StepTwoBajajFDFragment : BaseFragment() {
ifscCode,
activity as BajajFdMainActivity
)
stepTwoBajajFDViewModel.getifscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response ->
stepTwoBajajFDViewModel.getIfscCodeDetailsCheckMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
val getIFSCCodeResponse =
Gson().fromJson(
response.data?.toString(),
if (response.data.toString().isNotEmpty()) {
val getIFSCCodeResponse = Gson().fromJson(
response.data.toString(),
GetIFSCCodeResponse::class.java
)
getIFSCCodeResponse.Response.status_code.let { code ->
when (code) {
200 -> {
binding.edtBankName.setText(getIFSCCodeResponse.BANK)
binding.edtBankBranch.setText(getIFSCCodeResponse.BRANCH)
}
// 650 -> refreshToken()
else -> {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getIFSCCodeResponse.Response.message
)
}
}
binding.edtBankName.setText(getIFSCCodeResponse.IFSCCODEServiceResult[0].BnkDescr)
binding.edtBankName.setSelection(binding.edtBankName.text.toString().length)
binding.edtBankBranch.setText(getIFSCCodeResponse.IFSCCODEServiceResult[0].BankBranch)
binding.edtBankBranch.setSelection( binding.edtBankBranch.text.toString().length)
}
}
is Resource.Error -> {
response.message?.let { message ->
Common.showDialogValidation(activity as BajajFdMainActivity, message)
@ -886,21 +885,28 @@ class StepTwoBajajFDFragment : BaseFragment() {
is Resource.DataError -> {
}
}
}
}
}
private fun verifyAccountNo(bankAccount :String,Ifsc :String,name:String,phoneNumber:String,bankNo:Int) {
private fun verifyAccountNo(
bankAccount: String, Ifsc: String, name: String, phoneNumber: String, bankNo: Int
) {
val bankValidationApiRequest = BankValidationApiRequest()
bankValidationApiRequest.BankAccountNo=bankAccount
bankValidationApiRequest.IFSC=Ifsc
bankValidationApiRequest.Name=name
bankValidationApiRequest.PhoneNo=phoneNumber
bankValidationApiRequest.RoleId=5
bankValidationApiRequest.BankNo=bankNo
stepTwoBajajFDViewModel.bankValidationApi(bankValidationApiRequest, token, activity as BajajFdMainActivity)
bankValidationApiRequest.BankAccountNo = bankAccount
bankValidationApiRequest.IFSC = Ifsc
bankValidationApiRequest.Name = name
bankValidationApiRequest.PhoneNo = phoneNumber
bankValidationApiRequest.RoleId = 5
bankValidationApiRequest.BankNo = bankNo
stepTwoBajajFDViewModel.bankValidationApi(
bankValidationApiRequest,
token,
activity as BajajFdMainActivity
)
stepTwoBajajFDViewModel.bankValidationApiMutableData.observe(viewLifecycleOwner) { response ->
when (response) {
is Resource.Success -> {
@ -916,28 +922,38 @@ class StepTwoBajajFDFragment : BaseFragment() {
when (code) {
200 -> {
if(getBankValidationApiResponse.Message=="Account verified") {
val clientBankList =ClientBanklist()
clientBankList.AccountNumber=bankAccount
clientBankList.AccountType="sb"
clientBankList.BankName=binding.edtBankName.text.toString()
clientBankList.BranchName=binding.edtBankBranch.text.toString()
clientBankList.IFSCCode=Ifsc
clientBankList.IsValBank=1
if (getBankValidationApiResponse.Message == "Account verified") {
val clientBankList = ClientBanklist()
clientBankList.AccountNumber = bankAccount
clientBankList.AccountType = "sb"
clientBankList.BankName =
binding.edtBankName.text.toString()
clientBankList.BranchName =
binding.edtBankBranch.text.toString()
clientBankList.IFSCCode = Ifsc
clientBankList.IsValBank = 1
(activity as BajajFdMainActivity).getClientDetailsResponse.ObjectResponse?.ClientBanklist?.let {
listOfBanks.addAll(
it
)
}
listOfBanks.add(clientBankList)
setUpRecyclerView(listOfBanks , clientBankList.AccountNumber.toString())
}
else {
Common.showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message)
setUpRecyclerView(
listOfBanks,
clientBankList.AccountNumber.toString()
)
} else {
Common.showDialogValidation(
activity as BajajFdMainActivity,
getBankValidationApiResponse.Message
)
}
}
else -> {
Common.showDialogValidation(activity as BajajFdMainActivity, getBankValidationApiResponse.Message)
Common.showDialogValidation(
activity as BajajFdMainActivity,
getBankValidationApiResponse.Message
)
}
}
}
@ -956,7 +972,6 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
}
}
}
private fun validateBank(): Boolean {
@ -995,7 +1010,10 @@ class StepTwoBajajFDFragment : BaseFragment() {
}
}
private fun setUpRecyclerView( bankList: List<ClientBanklist>?, selectedAccount: String? = null) {
private fun setUpRecyclerView(
bankList: List<ClientBanklist>?,
selectedAccount: String? = null
) {
val displayMetrics = DisplayMetrics()
requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics)
val width = displayMetrics.widthPixels.toDouble()
@ -1004,7 +1022,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
LinearLayoutManager.HORIZONTAL,
false
)
bankListAdapter = BankListAdapter(bankList, selectedAccount,width)
bankListAdapter = BankListAdapter(bankList, selectedAccount, width)
binding.rvClientBankList.adapter = bankListAdapter
}
@ -1228,7 +1246,7 @@ class StepTwoBajajFDFragment : BaseFragment() {
private fun setUpRecyclerViewPaymentMode(listOfPayMode: List<GetCodes>) {
binding.rvPaymentMode.layoutManager =
GridLayoutManager(activity as BajajFdMainActivity,2)
GridLayoutManager(activity as BajajFdMainActivity, 2)
paymentModeAdapter = PaymentModeAdapter(
listOfPayMode,
listOfPayMode[0].Value
@ -1896,7 +1914,11 @@ class StepTwoBajajFDFragment : BaseFragment() {
getString(R.string.emptyState)
)
} else if (binding.spCity.text.toString().isEmpty()) { // EditText
commonSpinnerErrorMethod(binding.spCity, binding.tlCity, getString(R.string.emptyCity))
commonSpinnerErrorMethod(
binding.spCity,
binding.tlCity,
getString(R.string.emptyCity)
)
} else if (binding.edtPinCode.text.toString().isEmpty()) { // EditText
commonErrorMethod(
binding.edtPinCode,


+ 20
- 2
app/src/main/java/com/nivesh/production/bajajfd/util/Common.kt View File

@ -8,9 +8,9 @@ import android.graphics.drawable.GradientDrawable
import android.net.ConnectivityManager
import android.net.NetworkCapabilities
import android.os.Build
import android.os.Environment
import android.provider.ContactsContract
import android.text.format.DateFormat
import android.util.Log
import android.util.Patterns
import com.google.android.material.textfield.MaterialAutoCompleteTextView
import com.google.android.material.textfield.TextInputEditText
@ -18,8 +18,9 @@ import com.google.android.material.textfield.TextInputLayout
import com.google.gson.JsonObject
import com.nivesh.production.bajajfd.R
import kotlinx.coroutines.CoroutineExceptionHandler
import org.json.JSONObject
import retrofit2.HttpException
import java.io.File
import retrofit2.Response
import java.io.IOException
import java.text.SimpleDateFormat
import java.util.*
@ -207,6 +208,23 @@ class Common {
return Resource.Error(response.message())
}
fun handleResponse1(response: Response<String>): Resource<String> {
if (response.isSuccessful && response.body() != null) {
if (response.body().toString().isNotEmpty()) {
Log.e("response", "-->$response")
val str: String = response.body().toString().replace("\r\n", "")
Log.e("str", "-->$str")
val jsonObject = JSONObject(str)
Log.e("jsonObject", "-->$jsonObject")
return Resource.Success(jsonObject.toString())
}else {
return Resource.Error(response.message())
}
}
return Resource.Error(response.message())
}
fun handleError(activity: Activity): CoroutineExceptionHandler {
val handler = CoroutineExceptionHandler { _, exception ->
if (exception is IOException || exception is HttpException) {


+ 1
- 1
app/src/main/java/com/nivesh/production/bajajfd/util/Constants.kt View File

@ -3,7 +3,7 @@ package com.nivesh.production.bajajfd.util
class Constants() {
companion object {
const val BASE_URL = "https://providential.in/"
const val BASE_URL = "https://providential.in/WebApi_Bajaj/api/"
const val token = "636F8F63-06C4-4D95-8562-392B34025FB0"
}
}

+ 7
- 4
app/src/main/java/com/nivesh/production/bajajfd/viewModel/StepTwoBajajFDViewModel.kt View File

@ -9,6 +9,8 @@ import com.nivesh.production.bajajfd.model.*
import com.nivesh.production.bajajfd.repositories.MainRepository
import com.nivesh.production.bajajfd.util.Common
import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse
import com.nivesh.production.bajajfd.util.Common.Companion.handleResponse1
import com.nivesh.production.bajajfd.util.Constants.Companion.token
import com.nivesh.production.bajajfd.util.Resource
import kotlinx.coroutines.launch
@ -136,17 +138,18 @@ class StepTwoBajajFDViewModel(private val mainRepository: MainRepository) : View
}
}
val getifscCodeDetailsCheckMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
val getIfscCodeDetailsCheckMutableData: MutableLiveData<Resource<String>> = MutableLiveData()
fun ifscCodeDetailsApi(ifsc : String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)
) {
if (Common.isNetworkAvailable(activity)) {
getifscCodeDetailsCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.ifscCodeDetailsCheck(ifsc)
getifscCodeDetailsCheckMutableData.postValue(handleResponse(response))
getIfscCodeDetailsCheckMutableData.postValue(Resource.Loading())
val response = mainRepository.ifscCodeBankDetailsCheck(ifsc, token)
getIfscCodeDetailsCheckMutableData.postValue(handleResponse1(response))
}
}
val getPaymentModeMutableData: MutableLiveData<Resource<JsonObject>> = MutableLiveData()
fun paymentModeApi(getCodeRequest: GetCodeRequest, token: String,activity : Activity) = viewModelScope.launch(
Common.handleError(activity)


Loading…
Cancel
Save

Powered by TurnKey Linux.