summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt9
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/output/RestMtbFileSender.kt23
-rw-r--r--src/main/kotlin/dev/dnpm/etl/processor/web/MtbFileController.kt9
3 files changed, 32 insertions, 9 deletions
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt b/src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt
index 7a88445..55503cf 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/output/KafkaMtbFileSender.kt
@@ -30,7 +30,7 @@ class KafkaMtbFileSender(
private val logger = LoggerFactory.getLogger(KafkaMtbFileSender::class.java)
- override fun send(request: MtbFileSender.Request): MtbFileSender.Response {
+ override fun send(request: MtbFileSender.MtbFileRequest): MtbFileSender.Response {
return try {
val result = kafkaTemplate.sendDefault(
header(request),
@@ -49,7 +49,12 @@ class KafkaMtbFileSender(
}
}
- private fun header(request: MtbFileSender.Request): String {
+ // TODO not yet implemented
+ override fun send(request: MtbFileSender.DeleteRequest): MtbFileSender.Response {
+ return MtbFileSender.Response(MtbFileSender.ResponseStatus.UNKNOWN)
+ }
+
+ private fun header(request: MtbFileSender.MtbFileRequest): String {
return "{\"pid\": \"${request.mtbFile.patient.id}\", " +
"\"eid\": \"${request.mtbFile.episode.id}\", " +
"\"requestId\": \"${request.requestId}\"}"
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/output/RestMtbFileSender.kt b/src/main/kotlin/dev/dnpm/etl/processor/output/RestMtbFileSender.kt
index fc3d1c0..93eaa79 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/output/RestMtbFileSender.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/output/RestMtbFileSender.kt
@@ -33,7 +33,7 @@ class RestMtbFileSender(private val restTargetProperties: RestTargetProperties)
private val restTemplate = RestTemplate()
- override fun send(request: MtbFileSender.Request): MtbFileSender.Response {
+ override fun send(request: MtbFileSender.MtbFileRequest): MtbFileSender.Response {
try {
val headers = HttpHeaders()
headers.contentType = MediaType.APPLICATION_JSON
@@ -62,4 +62,25 @@ class RestMtbFileSender(private val restTargetProperties: RestTargetProperties)
return MtbFileSender.Response(MtbFileSender.ResponseStatus.ERROR, "Sonstiger Fehler bei der Übertragung")
}
+ override fun send(request: MtbFileSender.DeleteRequest): MtbFileSender.Response {
+ try {
+ val headers = HttpHeaders()
+ headers.contentType = MediaType.APPLICATION_JSON
+ val entityReq = HttpEntity(null, headers)
+ restTemplate.delete(
+ restTargetProperties.uri!!,
+ entityReq,
+ String::class.java
+ )
+ logger.debug("Sent file via RestMtbFileSender")
+ MtbFileSender.Response(MtbFileSender.ResponseStatus.SUCCESS)
+ } catch (e: IllegalArgumentException) {
+ logger.error("Not a valid URI to export to: '{}'", restTargetProperties.uri!!)
+ } catch (e: RestClientException) {
+ logger.info(restTargetProperties.uri!!.toString())
+ logger.error("Cannot send data to remote system", e)
+ }
+ return MtbFileSender.Response(MtbFileSender.ResponseStatus.ERROR, "Sonstiger Fehler bei der Übertragung")
+ }
+
} \ No newline at end of file
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/web/MtbFileController.kt b/src/main/kotlin/dev/dnpm/etl/processor/web/MtbFileController.kt
index a720f20..be11c32 100644
--- a/src/main/kotlin/dev/dnpm/etl/processor/web/MtbFileController.kt
+++ b/src/main/kotlin/dev/dnpm/etl/processor/web/MtbFileController.kt
@@ -31,12 +31,9 @@ import org.apache.commons.codec.binary.Base32
import org.apache.commons.codec.digest.DigestUtils
import org.slf4j.LoggerFactory
import org.springframework.http.ResponseEntity
-import org.springframework.web.bind.annotation.PathVariable
-import org.springframework.web.bind.annotation.PostMapping
-import org.springframework.web.bind.annotation.RequestBody
-import org.springframework.web.bind.annotation.RestController
+import org.springframework.web.bind.annotation.*
import reactor.core.publisher.Sinks
-import java.util.UUID
+import java.util.*
@RestController
class MtbFileController(
@@ -129,7 +126,7 @@ class MtbFileController(
}
}
- @PostMapping(path = ["/mtbfile/{patientId}"])
+ @DeleteMapping(path = ["/mtbfile/{patientId}"])
fun deleteData(@PathVariable patientId: String): ResponseEntity<Void> {
val requestId = UUID.randomUUID().toString()