diff options
| author | Paul-Christian Volkmer | 2026-03-06 13:08:40 +0100 |
|---|---|---|
| committer | GitHub | 2026-03-06 12:08:40 +0000 |
| commit | bf6bfa904e127f51b79cfafb96e1280b50e9615a (patch) | |
| tree | 67e4c3404a03e0b081515dd5993a11d2848f195d /src/main/kotlin/dev/dnpm/etl | |
| parent | 6fee6f3cf9248ea8fb1ddc738d0f6261ae58bb4b (diff) | |
feat: save TAN for MTB requests (#253)
Diffstat (limited to 'src/main/kotlin/dev/dnpm/etl')
3 files changed, 17 insertions, 0 deletions
diff --git a/src/main/kotlin/dev/dnpm/etl/processor/monitoring/Request.kt b/src/main/kotlin/dev/dnpm/etl/processor/monitoring/Request.kt index b1cc1ed..9aede20 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/monitoring/Request.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/monitoring/Request.kt @@ -43,6 +43,7 @@ data class Request( val type: RequestType, @Column("submission_type") val submissionType: SubmissionType, var status: RequestStatus, + @Column("tan") val tan: Tan = Tan.empty(), var processedAt: Instant = Instant.now(), @Embedded.Nullable var report: Report? = null, @Column("submission_accepted") var submissionAccepted: Boolean = false, @@ -55,6 +56,7 @@ data class Request( type: RequestType, submissionType: SubmissionType, status: RequestStatus, + tan: Tan, ) : this( null, uuid, @@ -64,6 +66,7 @@ data class Request( type, submissionType, status, + tan, Instant.now(), ) @@ -75,6 +78,7 @@ data class Request( type: RequestType, submissionType: SubmissionType, status: RequestStatus, + tan: Tan, processedAt: Instant, ) : this( null, @@ -85,6 +89,7 @@ data class Request( type, submissionType, status, + tan, processedAt, ) 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 b14d6f4..fe1fd3b 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/services/RequestProcessor.kt @@ -107,6 +107,7 @@ class RequestProcessor( RequestType.MTB_FILE, submissionType, RequestStatus.BLOCKED_INITIAL, + Tan(request.content.metadata?.transferTan.orEmpty()) ) ) // Exit - no further processing @@ -135,6 +136,7 @@ class RequestProcessor( RequestType.MTB_FILE, submissionType, RequestStatus.UNKNOWN, + Tan(request.content.metadata?.transferTan.orEmpty()), ) ) @@ -228,6 +230,7 @@ class RequestProcessor( RequestType.DELETE, SubmissionType.UNKNOWN, requestStatus, + Tan.empty() ) ) @@ -256,6 +259,7 @@ class RequestProcessor( type = RequestType.DELETE, submissionType = SubmissionType.UNKNOWN, report = Report("Fehler bei der Pseudonymisierung"), + tan = Tan.empty(), ) ) } diff --git a/src/main/kotlin/dev/dnpm/etl/processor/types.kt b/src/main/kotlin/dev/dnpm/etl/processor/types.kt index 87f5fb2..9244297 100644 --- a/src/main/kotlin/dev/dnpm/etl/processor/types.kt +++ b/src/main/kotlin/dev/dnpm/etl/processor/types.kt @@ -48,6 +48,14 @@ fun emptyPatientId() = PatientId("") fun emptyPatientPseudonym() = PatientPseudonym("") +@JvmInline value class Tan(val value: String) { + fun isValid() = value.matches(Regex("^[a-fA-F0-9]{64}$")) + + companion object { + fun empty() = Tan("") + } +} + /** * Custom MediaTypes * |
