From f347653be83682e95606358ac25242a219508236 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Thu, 20 Mar 2025 14:19:25 +0100 Subject: [PATCH] refactor: use UriComponentsBuilder to build URL to be used This prevents problems using trailing slash in remote API URL. --- .../processor/output/RestBwhcMtbFileSender.kt | 16 +++++++++++---- .../processor/output/RestDipMtbFileSender.kt | 20 +++++++++++++++---- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/dev/dnpm/etl/processor/output/RestBwhcMtbFileSender.kt b/src/main/kotlin/dev/dnpm/etl/processor/output/RestBwhcMtbFileSender.kt index bc940fd..f4a58e8 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/output/RestBwhcMtbFileSender.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/output/RestBwhcMtbFileSender.kt @@ -23,19 +23,27 @@ import dev.dnpm.etl.processor.PatientPseudonym import dev.dnpm.etl.processor.config.RestTargetProperties import org.springframework.retry.support.RetryTemplate import org.springframework.web.client.RestTemplate +import org.springframework.web.util.UriComponentsBuilder class RestBwhcMtbFileSender( - private val restTemplate: RestTemplate, + restTemplate: RestTemplate, private val restTargetProperties: RestTargetProperties, - private val retryTemplate: RetryTemplate + retryTemplate: RetryTemplate ) : RestMtbFileSender(restTemplate, restTargetProperties, retryTemplate) { override fun sendUrl(): String { - return "${restTargetProperties.uri}/MTBFile" + return UriComponentsBuilder + .fromUriString(restTargetProperties.uri.toString()) + .pathSegment("MTBFile") + .toUriString() } override fun deleteUrl(patientId: PatientPseudonym): String { - return "${restTargetProperties.uri}/Patient/${patientId.value}" + return UriComponentsBuilder + .fromUriString(restTargetProperties.uri.toString()) + .pathSegment("Patient") + .pathSegment(patientId.value) + .toUriString() } } \ No newline at end of file diff --git a/src/main/kotlin/dev/dnpm/etl/processor/output/RestDipMtbFileSender.kt b/src/main/kotlin/dev/dnpm/etl/processor/output/RestDipMtbFileSender.kt index 21ea967..42dbb30 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/output/RestDipMtbFileSender.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/output/RestDipMtbFileSender.kt @@ -23,19 +23,31 @@ import dev.dnpm.etl.processor.PatientPseudonym import dev.dnpm.etl.processor.config.RestTargetProperties import org.springframework.retry.support.RetryTemplate import org.springframework.web.client.RestTemplate +import org.springframework.web.util.UriComponentsBuilder class RestDipMtbFileSender( - private val restTemplate: RestTemplate, + restTemplate: RestTemplate, private val restTargetProperties: RestTargetProperties, - private val retryTemplate: RetryTemplate + retryTemplate: RetryTemplate ) : RestMtbFileSender(restTemplate, restTargetProperties, retryTemplate) { override fun sendUrl(): String { - return "${restTargetProperties.uri}/patient-record" + return UriComponentsBuilder + .fromUriString(restTargetProperties.uri.toString()) + .pathSegment("mtb") + .pathSegment("etl") + .pathSegment("patient-record") + .toUriString() } override fun deleteUrl(patientId: PatientPseudonym): String { - return "${restTargetProperties.uri}/patient/${patientId.value}" + return UriComponentsBuilder + .fromUriString(restTargetProperties.uri.toString()) + .pathSegment("mtb") + .pathSegment("etl") + .pathSegment("patient") + .pathSegment(patientId.value) + .toUriString() } } \ No newline at end of file