From 4196664060e879c6159d7986a145f28be3c1798a Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Thu, 5 Oct 2023 12:09:56 +0200 Subject: Issue #12: Transform MTBFile objects by using transformation rules --- .../kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt | 10 +++++++--- .../kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt | 3 ++- .../dev/dnpm/etl/processor/services/TransformationService.kt | 4 ++-- 3 files changed, 11 insertions(+), 6 deletions(-) (limited to 'src/main') diff --git a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt index ccc4b78..70ae0f5 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/config/AppConfiguration.kt @@ -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 { - 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 - } + }) } } diff --git a/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt b/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt index 3cd912c..fd9a3f5 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt @@ -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( diff --git a/src/main/kotlin/dev/dnpm/etl/processor/services/TransformationService.kt b/src/main/kotlin/dev/dnpm/etl/processor/services/TransformationService.kt index f33900d..26de550 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/services/TransformationService.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/services/TransformationService.kt @@ -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) { + fun transform(mtbFile: MtbFile): MtbFile { var json = objectMapper.writeValueAsString(mtbFile) transformations.forEach { transformation -> -- cgit v1.2.3