diff options
| author | jlidke | 2023-09-04 15:41:22 +0200 |
|---|---|---|
| committer | GitHub | 2023-09-04 15:41:22 +0200 |
| commit | bf8f87b261fb033088e6b4d7a6566d8b6f5aefed (patch) | |
| tree | e56b5f1442fed149a8798758aa8262ef2ff38be3 | |
| parent | 2f32834de07714df9600092173aac0cc0798e363 (diff) | |
fix: removed gaps system from GPAS pseudonym value. Also added clean up method, which will replace filename invalid characters witch '_'. (#11)
| -rw-r--r-- | src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java | 16 | ||||
| -rw-r--r-- | src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt | 7 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java b/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java index 7b631d8..07f16c5 100644 --- a/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java +++ b/src/main/java/dev/dnpm/etl/processor/pseudonym/GpasPseudonymGenerator.java @@ -127,7 +127,21 @@ public class GpasPseudonymGenerator implements Generator { .orElseGet(ParametersParameterComponent::new).getValue(); // pseudonym - return identifier.getSystem() + "|" + identifier.getValue(); + return sanitizeValue(identifier.getValue()); + } + + /** + * Allow only filename friendly values + * + * @param psnValue GAPS pseudonym value + * @return cleaned up value + */ + public static String sanitizeValue(String psnValue) { + // pattern to match forbidden characters + String forbiddenCharsRegex = "[\\\\/:*?\"<>|;]"; + + // Replace all forbidden characters with underscores + return psnValue.replaceAll(forbiddenCharsRegex, "_"); } diff --git a/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt index a30a328..4646ff6 100644 --- a/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt +++ b/src/test/kotlin/dev/dnpm/etl/processor/pseudonym/PseudonymizeServiceTest.kt @@ -71,6 +71,13 @@ class PseudonymizeServiceTest { } @Test + fun sanitizeFileName(@Mock generator: GpasPseudonymGenerator) { + val result= GpasPseudonymGenerator.sanitizeValue("l://a\\bs;1*2?3>") + + assertThat(result).isEqualTo("l___a_bs_1_2_3_") + } + + @Test fun shouldUsePseudonymPrefixForBuiltin(@Mock generator: AnonymizingGenerator) { doAnswer { it.arguments[0] |
