libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit 66449f9d0666cc7e65c4104b3ae07c4c67f3705b
parent 1f0efebdc384e71f22f505125c26aceb6cb7eb0f
Author: Marcello Stanisci <stanisci.m@gmail.com>
Date:   Sat, 25 Jan 2020 00:20:26 +0100

require --host-id

Diffstat:
Mnexus/src/main/kotlin/JSON.kt | 2+-
Mnexus/src/main/kotlin/Main.kt | 24++++++++++++++----------
Msandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt | 7+++----
Msandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt | 4++--
Msandbox/src/main/python/libeufin-cli | 3+--
5 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/nexus/src/main/kotlin/JSON.kt b/nexus/src/main/kotlin/JSON.kt @@ -58,5 +58,5 @@ data class EbicsSubscriberInfoResponse( * Admin call that tells all the subscribers managed by Nexus. */ data class EbicsSubscribersResponse( - val ebicsSubscribers: List<EbicsSubscriberInfoResponse> + val ebicsSubscribers: MutableList<EbicsSubscriberInfoResponse> = mutableListOf() ) \ No newline at end of file diff --git a/nexus/src/main/kotlin/Main.kt b/nexus/src/main/kotlin/Main.kt @@ -434,19 +434,23 @@ fun main() { get("/ebics/subscribers") { - val ebicsSubscribers = transaction { - EbicsSubscriberEntity.all().map { - EbicsSubscriberInfoResponse( - accountID = it.id.value, - hostID = it.hostID, - partnerID = it.partnerID, - systemID = it.systemID, - ebicsURL = it.ebicsURL, - userID = it.userID + var ret = EbicsSubscribersResponse() + transaction { + EbicsSubscriberEntity.all().forEach { + ret.ebicsSubscribers.add( + EbicsSubscriberInfoResponse( + accountID = it.id.value, + hostID = it.hostID, + partnerID = it.partnerID, + systemID = it.systemID, + ebicsURL = it.ebicsURL, + userID = it.userID + ) ) } } - call.respond(EbicsSubscribersResponse(ebicsSubscribers)) + call.respond(ret) + return@get } get("/ebics/subscribers/{id}") { diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt b/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt @@ -27,10 +27,8 @@ import io.ktor.request.receiveText import io.ktor.response.respond import io.ktor.response.respondText import org.apache.xml.security.binding.xmldsig.RSAKeyValueType -import org.jetbrains.exposed.sql.and -import org.jetbrains.exposed.sql.stringParam +import org.jetbrains.exposed.sql.* import org.jetbrains.exposed.sql.transactions.transaction -import org.jetbrains.exposed.sql.upperCase import org.w3c.dom.Document import tech.libeufin.util.ebics_h004.* import tech.libeufin.util.ebics_hev.HEVResponse @@ -421,10 +419,11 @@ private suspend fun ApplicationCall.handleEbicsHpb( */ private fun ApplicationCall.ensureEbicsHost(requestHostID: String): EbicsHostPublicInfo { return transaction { + addLogger(StdOutSqlLogger) val ebicsHost = EbicsHostEntity.find { EbicsHostsTable.hostID.upperCase() eq requestHostID.toUpperCase() }.firstOrNull() if (ebicsHost == null) { - LOGGER.warn("client requested unknown HostID") + LOGGER.warn("client requested unknown HostID ${requestHostID}") throw EbicsKeyManagementError("[EBICS_INVALID_HOST_ID]", "091011") } val encryptionPrivateKey = CryptoUtil.loadRsaPrivateKey(ebicsHost.encryptionPrivateKey.toByteArray()) diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt b/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt @@ -153,7 +153,7 @@ fun sampleData() { partnerId = "PARTNER1" userId = "USER1" systemId = null - hostId = "HOST1" + hostId = "HOST01" state = SubscriberState.NEW nextOrderID = 1 bankCustomer = customerEntity @@ -308,7 +308,7 @@ fun main() { partnerId = body.partnerID userId = body.userID systemId = null - hostId = body.hostID.toUpperCase() + hostId = body.hostID state = SubscriberState.NEW nextOrderID = 1 bankCustomer = customerEntity diff --git a/sandbox/src/main/python/libeufin-cli b/sandbox/src/main/python/libeufin-cli @@ -333,8 +333,7 @@ def subscribers(obj): @click.option( "--host-id", help="ID of the EBICS server" , - required=False, - default="host01" + required=True ) def new_subscriber(obj, user_id, partner_id, system_id, host_id, ebics_url): nexus_url = urljoin(obj["nexus_base_url"], "/ebics/subscribers")