libeufin

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

commit 944a1417bf697529d6aa2d9a1251fe1a991ce1cd
parent a321e4373781d35427bf25b99a00dda64fefe04b
Author: Marcello Stanisci <stanisci.m@gmail.com>
Date:   Tue, 17 Sep 2019 17:52:04 +0200

Check if the message can be handled by the server.

Diffstat:
Msrc/main/java/tech/libeufin/XMLManagement.java | 2+-
Msrc/main/kotlin/Main.kt | 25++++++++++++++++---------
2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/src/main/java/tech/libeufin/XMLManagement.java b/src/main/java/tech/libeufin/XMLManagement.java @@ -153,7 +153,7 @@ public class XMLManagement { /* Make Transformer. */ TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); - t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); + // t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); t.setOutputProperty(OutputKeys.INDENT, "no"); /* Make string writer. */ diff --git a/src/main/kotlin/Main.kt b/src/main/kotlin/Main.kt @@ -29,7 +29,9 @@ import io.ktor.server.netty.* import tech.libeufin.XMLManagement; import java.io.ByteArrayInputStream import java.io.InputStream +import org.w3c.dom.Document; +val knownTypes = arrayOf("ebicsHEVRequest") fun main(args: Array<String>) { var xmlProcess = XMLManagement(); @@ -44,21 +46,26 @@ fun main(args: Array<String>) { val isValid = xmlProcess.validate(body) call.response.header("Content-Type", "application/xml") - /*if (!isValid) { - /* Return "invalid request" */ + if (!isValid) { + call.respond(HttpStatusCode(400, "Invalid request")); } - if (!knownType) { + val bodyDocument = XMLManagement.parseStringIntoDOM(body) + if (null == bodyDocument) + { + /* Should never happen. */ + System.out.println("A valid document failed to parse into DOM!") + call.respond(HttpStatusCode(500, "Internal server error")); + } + if (bodyDocument.documentElement !in knownTypes) { /* Log to console and return "unknown type" */ + System.out.println("Unknown message, just logging it!") + call.respond(HttpStatusCode(400, "Not found")); } - if (isValid){ - call.respond(HttpStatusCode.OK, xmlResponseObject) - } - else { - call.respond(HttpStatusCode.BadRequest, xmlResponseObject) - }*/ + /* Generate response here. */ + } } }