1
0
mirror of https://github.com/pcvolkmer/etl-processor.git synced 2025-07-04 07:22:55 +00:00

Issue #12: Transform MTBFile objects by using transformation rules

This commit is contained in:
2023-10-05 12:09:56 +02:00
parent 2824951e5e
commit 4196664060
5 changed files with 41 additions and 22 deletions

View File

@ -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
}
})
}
}

View File

@ -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(

View File

@ -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 ->