changed the errorMsg to return the whole response body in case of any unknown json message from server in TransactionExecutor.kt
This commit is contained in:
parent
66dde20601
commit
8046dd0e62
@ -28,9 +28,9 @@ dependencies {
|
||||
implementation("io.ktor:ktor-server-netty-jvm")
|
||||
implementation("ch.qos.logback:logback-classic:$logback_version")
|
||||
implementation("com.oracle.database.jdbc:ojdbc8:21.1.0.0")
|
||||
implementation("org.json:json:20240303")
|
||||
implementation("com.squareup.okhttp3:okhttp:4.12.0")
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.1")
|
||||
implementation("redis.clients:jedis:5.1.2")
|
||||
implementation("org.slf4j:slf4j-api:2.0.16")
|
||||
testImplementation("io.ktor:ktor-server-test-host-jvm")
|
||||
testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version")
|
||||
|
@ -6,7 +6,7 @@ import io.ktor.server.netty.*
|
||||
import net.ipksindia.plugins.*
|
||||
|
||||
fun main() {
|
||||
embeddedServer(Netty, port = 8082, host = "0.0.0.0", module = Application::module)
|
||||
embeddedServer(Netty, port = 8083, host = "0.0.0.0", module = Application::module)
|
||||
.start(wait = true)
|
||||
}
|
||||
|
||||
|
@ -11,11 +11,11 @@ class NeftRequestProcessor {
|
||||
|
||||
companion object {
|
||||
private val logger: Logger = LoggerFactory.getLogger(NeftRequestProcessor::class.java)
|
||||
private val migratedDCCBCodes = listOf("0003","0015", "0016")
|
||||
private val migratedDCCBCodes = listOf("0003","0015")
|
||||
val bankDccbToSftpMap = mutableMapOf<String, String>(
|
||||
"0015" to "0005", //Tamluk
|
||||
"0003" to "0021", //Balageria
|
||||
"0016" to "0001", //WBSCB
|
||||
// "0016" to "0001", //WBSCB
|
||||
)
|
||||
|
||||
fun process(transactionNumber: String): Pair<String, String>? {
|
||||
@ -39,7 +39,9 @@ class NeftRequestProcessor {
|
||||
logger.error("TXN: #{} FAILED REASON: Teller not found", transactionNumber)
|
||||
return null
|
||||
}
|
||||
|
||||
val transactionPair = TransactionFactory(outwardTransaction, makerTeller).createTransactionPair()
|
||||
logger.info("TXN: #{} TRANSFER RRN: {} NEFT RRN: {}", transactionNumber, transactionPair.first.rrn, transactionPair.second.rrn)
|
||||
val (transferResponse, neftResponse) = try {
|
||||
TransactionExecutor().executePair(transactionPair)
|
||||
} catch (e: Exception) {
|
||||
|
@ -19,7 +19,7 @@ import javax.net.ssl.HostnameVerifier
|
||||
class TransactionExecutor() {
|
||||
|
||||
private val protocol = "https"
|
||||
private val host = "180.179.119.227"
|
||||
private val host = "180.179.110.185"
|
||||
private val port = "443"
|
||||
private val rootRoute = "IPKS_Queue_Generation"
|
||||
private val remoteUrl = "$protocol://$host:$port/$rootRoute"
|
||||
@ -28,14 +28,15 @@ class TransactionExecutor() {
|
||||
|
||||
val transferTransaction = transactionPair.first
|
||||
val neftTransaction = transactionPair.second
|
||||
|
||||
val transferResponse = execute(Json.encodeToString(transferTransaction))
|
||||
val neftResponse = execute(Json.encodeToString(neftTransaction))
|
||||
return Pair(transferResponse, neftResponse)
|
||||
}
|
||||
|
||||
private fun execute(postBody: String): TransactionResponse {
|
||||
|
||||
val transferRoute = "Ipks"
|
||||
// println(postBody)
|
||||
val transferRoute = "IpksApi"
|
||||
val transferURL = "$remoteUrl/$transferRoute"
|
||||
val jsonMediaType = "application/json; charset=utf-8".toMediaType()
|
||||
|
||||
@ -52,9 +53,9 @@ class TransactionExecutor() {
|
||||
|
||||
val responseBody = httpClient.newCall(request).execute().use { response ->
|
||||
if (!response.isSuccessful) {
|
||||
throw IOException("Unexpected code $response")
|
||||
throw IOException("Unexpected response: ${response.body}")
|
||||
}
|
||||
response.body!!.string()
|
||||
response.body?.string() ?: throw IOException("no response body")
|
||||
}
|
||||
|
||||
val responseObj = JSONObject(responseBody)
|
||||
@ -66,7 +67,7 @@ class TransactionExecutor() {
|
||||
val queueNo = try { responseObj.getJSONObject("response").getString("QueueId") } catch(_: JSONException) { "" }
|
||||
return TransactionSuccessResponse(status, message, queueNo, error)
|
||||
} else {
|
||||
val errorMsg = try { responseObj.getJSONObject("response").getString("errorMsg") } catch(_: JSONException) { "no error message provided" }
|
||||
val errorMsg = try { responseObj.getJSONObject("response").getString("errorMsg") } catch(_: JSONException) { responseBody }
|
||||
return TransactionFailureResponse(status, message, errorMsg, error)
|
||||
}
|
||||
return response
|
||||
|
@ -17,6 +17,7 @@ class TransactionFactory(private val transactionRequest: TransactionRequest, pri
|
||||
return TransferTransaction(
|
||||
bankCode = bankDccbToSftpMap[transactionRequest.dccbCode.padStart(4, '0')]!!,
|
||||
branchCode = transactionRequest.branchCode.padStart(3,'0'),
|
||||
// branchCode = "99999", for UAT
|
||||
cbsTellerId = teller.tellerId,
|
||||
cbsTellerUserType = teller.userType,
|
||||
queIdType = "5",
|
||||
@ -44,6 +45,7 @@ class TransactionFactory(private val transactionRequest: TransactionRequest, pri
|
||||
return NeftTransaction(
|
||||
bankCode = bankDccbToSftpMap[transactionRequest.dccbCode.padStart(4, '0')]!!,
|
||||
branchCode = transactionRequest.branchCode.padStart(3,'0'),
|
||||
// branchCode = "99999", for UAT
|
||||
cbsTellerId = teller.tellerId,
|
||||
cbsTellerUserType = teller.userType,
|
||||
queIdType = "5",
|
||||
|
@ -7,39 +7,48 @@ class TellerDao {
|
||||
|
||||
private val tellerMap = mapOf(
|
||||
"0003" to mapOf(
|
||||
"00008" to "8",
|
||||
"00022" to "22",
|
||||
"00012" to "12",
|
||||
"00014" to "14",
|
||||
"00003" to "1003",
|
||||
"00015" to "15",
|
||||
"00013" to "13",
|
||||
"00018" to "18",
|
||||
"00001" to "1001",
|
||||
"00004" to "4",
|
||||
"00017" to "1234",
|
||||
"00005" to "5",
|
||||
"00011" to "11",
|
||||
"00020" to "1234",
|
||||
"00021" to "1234",
|
||||
"00016" to "016",
|
||||
"00009" to "9",
|
||||
"00010" to "10",
|
||||
"00007" to "7",
|
||||
"00006" to "6",
|
||||
"00012" to "312",
|
||||
"00017" to "317",
|
||||
"00013" to "313",
|
||||
"00014" to "314",
|
||||
"00015" to "315",
|
||||
"00016" to "316",
|
||||
"00019" to "319",
|
||||
"00020" to "320",
|
||||
"00026" to "11126",
|
||||
"00010" to "310"
|
||||
),
|
||||
"0015" to mapOf(
|
||||
"00008" to "118",
|
||||
"00002" to "249",
|
||||
"00006" to "11106",
|
||||
"00005" to "11105",
|
||||
"00002" to "11102",
|
||||
"00004" to "11104",
|
||||
"00023" to "1234",
|
||||
"00008" to "11108",
|
||||
"00017" to "11117",
|
||||
"00011" to "10111",
|
||||
"00021" to "1234",
|
||||
"00001" to "1234",
|
||||
"00018" to "11118",
|
||||
"00012" to "11112",
|
||||
"00019" to "11119",
|
||||
"00003" to "11103",
|
||||
"00009" to "11109",
|
||||
"00015" to "11115",
|
||||
"00020" to "11120",
|
||||
"00013" to "11113",
|
||||
"00014" to "1234",
|
||||
"00016" to "11116",
|
||||
"00010" to "11110",
|
||||
"00007" to "11107",
|
||||
"00022" to "1234",
|
||||
"00026" to "11126"
|
||||
),
|
||||
"0016" to mapOf(
|
||||
"00001" to "249",
|
||||
"00002" to "249"
|
||||
)
|
||||
)
|
||||
|
||||
fun getTeller(dccbCode: String, branchCode: String): Teller? {
|
||||
val branchList = tellerMap[dccbCode] ?: return null
|
||||
val tellerId = branchList[branchCode] ?: "249"
|
||||
val tellerId = branchList[branchCode] ?: return null
|
||||
val teller = Teller(
|
||||
tellerId,
|
||||
dccbCode,
|
||||
|
@ -1,6 +1,7 @@
|
||||
DB_NAME=IPKSDB
|
||||
DB_HOST=testipksdb.c7q7defafeea.ap-south-1.rds.amazonaws.com
|
||||
DB_NAME=IPKS
|
||||
#DB_HOST=testipksdb.c7q7defafeea.ap-south-1.rds.amazonaws.com
|
||||
#DB_HOST=localhost
|
||||
DB_HOST=ipksprod3.c7q7defafeea.ap-south-1.rds.amazonaws.com
|
||||
DB_PORT=1521
|
||||
DB_USER=pacs_db
|
||||
DB_PASSWORD=pacs_db
|
||||
|
Loading…
x
Reference in New Issue
Block a user