mirror of
https://github.com/pcvolkmer/etl-processor.git
synced 2025-07-04 15:32:55 +00:00
Issue #12: Transform MTBFile objects by using transformation rules
This commit is contained in:
@ -26,6 +26,7 @@ import dev.dnpm.etl.processor.pseudonym.Generator
|
||||
import dev.dnpm.etl.processor.pseudonym.GpasPseudonymGenerator
|
||||
import dev.dnpm.etl.processor.pseudonym.PseudonymizeService
|
||||
import dev.dnpm.etl.processor.services.Transformation
|
||||
import dev.dnpm.etl.processor.services.TransformationService
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties
|
||||
import org.springframework.context.annotation.Bean
|
||||
@ -73,10 +74,13 @@ class AppConfiguration {
|
||||
}
|
||||
|
||||
@Bean
|
||||
fun transformations(configProperties: AppConfigProperties): List<Transformation> {
|
||||
return configProperties.transformations.map {
|
||||
fun transformationService(
|
||||
objectMapper: ObjectMapper,
|
||||
configProperties: AppConfigProperties
|
||||
): TransformationService {
|
||||
return TransformationService(objectMapper, configProperties.transformations.map {
|
||||
Transformation.of(it.path) from it.from to it.to
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ import java.util.*
|
||||
@Service
|
||||
class RequestProcessor(
|
||||
private val pseudonymizeService: PseudonymizeService,
|
||||
private val transformationService: TransformationService,
|
||||
private val sender: MtbFileSender,
|
||||
private val requestService: RequestService,
|
||||
private val objectMapper: ObjectMapper,
|
||||
@ -50,7 +51,7 @@ class RequestProcessor(
|
||||
|
||||
mtbFile pseudonymizeWith pseudonymizeService
|
||||
|
||||
val request = MtbFileSender.MtbFileRequest(requestId, mtbFile)
|
||||
val request = MtbFileSender.MtbFileRequest(requestId, transformationService.transform(mtbFile))
|
||||
|
||||
requestService.save(
|
||||
Request(
|
||||
|
@ -24,8 +24,8 @@ import com.jayway.jsonpath.JsonPath
|
||||
import com.jayway.jsonpath.PathNotFoundException
|
||||
import de.ukw.ccc.bwhc.dto.MtbFile
|
||||
|
||||
class TransformationService(private val objectMapper: ObjectMapper) {
|
||||
fun transform(mtbFile: MtbFile, vararg transformations: Transformation): MtbFile {
|
||||
class TransformationService(private val objectMapper: ObjectMapper, private val transformations: List<Transformation>) {
|
||||
fun transform(mtbFile: MtbFile): MtbFile {
|
||||
var json = objectMapper.writeValueAsString(mtbFile)
|
||||
|
||||
transformations.forEach { transformation ->
|
||||
|
Reference in New Issue
Block a user