mirror of
https://github.com/pcvolkmer/etl-processor.git
synced 2025-04-19 17:26:51 +00:00
Handle delete requests by using REST request to bwHC
Kafka implementation is not implemented yet.
This commit is contained in:
parent
e1d05ef574
commit
a1e56f1596
@ -30,7 +30,7 @@ class KafkaMtbFileSender(
|
|||||||
|
|
||||||
private val logger = LoggerFactory.getLogger(KafkaMtbFileSender::class.java)
|
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 {
|
return try {
|
||||||
val result = kafkaTemplate.sendDefault(
|
val result = kafkaTemplate.sendDefault(
|
||||||
header(request),
|
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}\", " +
|
return "{\"pid\": \"${request.mtbFile.patient.id}\", " +
|
||||||
"\"eid\": \"${request.mtbFile.episode.id}\", " +
|
"\"eid\": \"${request.mtbFile.episode.id}\", " +
|
||||||
"\"requestId\": \"${request.requestId}\"}"
|
"\"requestId\": \"${request.requestId}\"}"
|
||||||
|
@ -33,7 +33,7 @@ class RestMtbFileSender(private val restTargetProperties: RestTargetProperties)
|
|||||||
|
|
||||||
private val restTemplate = RestTemplate()
|
private val restTemplate = RestTemplate()
|
||||||
|
|
||||||
override fun send(request: MtbFileSender.Request): MtbFileSender.Response {
|
override fun send(request: MtbFileSender.MtbFileRequest): MtbFileSender.Response {
|
||||||
try {
|
try {
|
||||||
val headers = HttpHeaders()
|
val headers = HttpHeaders()
|
||||||
headers.contentType = MediaType.APPLICATION_JSON
|
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")
|
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")
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -31,12 +31,9 @@ import org.apache.commons.codec.binary.Base32
|
|||||||
import org.apache.commons.codec.digest.DigestUtils
|
import org.apache.commons.codec.digest.DigestUtils
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
import org.springframework.http.ResponseEntity
|
import org.springframework.http.ResponseEntity
|
||||||
import org.springframework.web.bind.annotation.PathVariable
|
import org.springframework.web.bind.annotation.*
|
||||||
import org.springframework.web.bind.annotation.PostMapping
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody
|
|
||||||
import org.springframework.web.bind.annotation.RestController
|
|
||||||
import reactor.core.publisher.Sinks
|
import reactor.core.publisher.Sinks
|
||||||
import java.util.UUID
|
import java.util.*
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
class MtbFileController(
|
class MtbFileController(
|
||||||
@ -129,7 +126,7 @@ class MtbFileController(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping(path = ["/mtbfile/{patientId}"])
|
@DeleteMapping(path = ["/mtbfile/{patientId}"])
|
||||||
fun deleteData(@PathVariable patientId: String): ResponseEntity<Void> {
|
fun deleteData(@PathVariable patientId: String): ResponseEntity<Void> {
|
||||||
val requestId = UUID.randomUUID().toString()
|
val requestId = UUID.randomUUID().toString()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user