mirror of
https://github.com/pcvolkmer/etl-processor.git
synced 2025-04-19 17:26:51 +00:00
Implement delete request using Apache Kafka
This is implemented using a fake MTB file containing a rejected consent state and will be mapped to HTTP DELETE on kafka-to-bwhc consumer.
This commit is contained in:
parent
ac91620651
commit
3dcee41569
@ -20,6 +20,8 @@
|
||||
package dev.dnpm.etl.processor.output
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper
|
||||
import de.ukw.ccc.bwhc.dto.Consent
|
||||
import de.ukw.ccc.bwhc.dto.MtbFile
|
||||
import org.slf4j.LoggerFactory
|
||||
import org.springframework.kafka.core.KafkaTemplate
|
||||
|
||||
@ -42,16 +44,38 @@ class KafkaMtbFileSender(
|
||||
} else {
|
||||
MtbFileSender.Response(MtbFileSender.ResponseStatus.ERROR)
|
||||
}
|
||||
|
||||
} catch (e: Exception) {
|
||||
logger.error("An error occurred sending to kafka", e)
|
||||
MtbFileSender.Response(MtbFileSender.ResponseStatus.UNKNOWN)
|
||||
}
|
||||
}
|
||||
|
||||
// TODO not yet implemented
|
||||
override fun send(request: MtbFileSender.DeleteRequest): MtbFileSender.Response {
|
||||
return MtbFileSender.Response(MtbFileSender.ResponseStatus.UNKNOWN)
|
||||
val dummyMtbFile = MtbFile.builder()
|
||||
.withConsent(
|
||||
Consent.builder()
|
||||
.withPatient(request.patientId)
|
||||
.withStatus(Consent.Status.REJECTED)
|
||||
.build()
|
||||
)
|
||||
.build()
|
||||
|
||||
return try {
|
||||
val result = kafkaTemplate.sendDefault(
|
||||
header(request),
|
||||
objectMapper.writeValueAsString(dummyMtbFile)
|
||||
)
|
||||
|
||||
if (result.get() != null) {
|
||||
logger.debug("Sent deletion request via KafkaMtbFileSender")
|
||||
MtbFileSender.Response(MtbFileSender.ResponseStatus.SUCCESS)
|
||||
} else {
|
||||
MtbFileSender.Response(MtbFileSender.ResponseStatus.ERROR)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
logger.error("An error occurred sending to kafka", e)
|
||||
MtbFileSender.Response(MtbFileSender.ResponseStatus.UNKNOWN)
|
||||
}
|
||||
}
|
||||
|
||||
private fun header(request: MtbFileSender.MtbFileRequest): String {
|
||||
@ -59,4 +83,9 @@ class KafkaMtbFileSender(
|
||||
"\"eid\": \"${request.mtbFile.episode.id}\", " +
|
||||
"\"requestId\": \"${request.requestId}\"}"
|
||||
}
|
||||
|
||||
private fun header(request: MtbFileSender.DeleteRequest): String {
|
||||
return "{\"pid\": \"${request.patientId}\", " +
|
||||
"\"requestId\": \"${request.requestId}\"}"
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user