prep support for transfers for bml business accounts)

This commit is contained in:
2026-05-22 06:21:20 +05:00
parent b784085605
commit c9ae614fc7
5 changed files with 421 additions and 24 deletions
@@ -81,6 +81,27 @@ class BmlAccountClient {
} catch (_: Exception) { null }
}
fun fetchTransferChannels(session: BmlSession): List<BmlOtpChannel> {
val resp = client.newCall(bmlApiRequest(session, "$BML_BASE_URL/api/mobile/transfer")).execute()
val json = resp.body?.string() ?: run { resp.close(); return emptyList() }
resp.close()
return try {
val root = JSONObject(json)
if (!root.optBoolean("success")) return emptyList()
val arr = root.optJSONObject("payload")
?.optJSONObject("transfer")
?.optJSONArray("otpChannel") ?: return emptyList()
(0 until arr.length()).map { i ->
val ch = arr.getJSONObject(i)
BmlOtpChannel(
channel = ch.optString("channel"),
description = ch.optString("description"),
masked = ch.optString("masked")
)
}
} catch (_: Exception) { emptyList() }
}
private fun parseDashboard(
json: String,
loginTag: String,
@@ -17,7 +17,8 @@ class BmlTransferClient {
amount: Double,
transferType: String,
currency: String,
bank: String? = null
bank: String? = null,
channel: String = "token"
): Boolean {
val jo = JSONObject().apply {
put("debitAccount", debitAccount)
@@ -25,7 +26,7 @@ class BmlTransferClient {
put("debitAmount", amount)
put("transfertype", transferType)
put("currency", currency)
put("channel", "token")
put("channel", channel)
if (bank != null) put("bank", bank)
}
val request = Request.Builder()
@@ -55,7 +56,8 @@ class BmlTransferClient {
currency: String,
otp: String,
remarks: String = "",
bank: String? = null
bank: String? = null,
channel: String = "token"
): BmlTransferResult {
val jo = JSONObject().apply {
put("debitAccount", debitAccount)
@@ -63,7 +65,7 @@ class BmlTransferClient {
put("debitAmount", amount)
put("transfertype", transferType)
put("currency", currency)
put("channel", "token")
put("channel", channel)
put("otp", otp)
if (remarks.isNotBlank()) put("remarks", remarks)
if (bank != null) put("bank", bank)