Skip to content

Commit fd91f47

Browse files
committed
Add to_base64 function #354
1 parent 2d4f976 commit fd91f47

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

metafix/src/main/java/org/metafacture/metafix/FixMethod.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
import java.util.regex.Matcher;
4242
import java.util.regex.Pattern;
4343
import java.util.stream.Collectors;
44+
import java.util.Base64;
4445

4546
public enum FixMethod implements FixFunction { // checkstyle-disable-line ClassDataAbstractionCoupling|ClassFanOutComplexity
4647

@@ -626,6 +627,13 @@ public void apply(final Metafix metafix, final Record record, final List<String>
626627
);
627628
}
628629
},
630+
to_base64 {
631+
@Override
632+
public void apply(final Metafix metafix, final Record record, final List<String> params,
633+
final Map<String, String> options) {
634+
record.transform(params.get(0), s -> Base64.getEncoder().encodeToString(s.getBytes()));
635+
}
636+
},
629637
to_json {
630638
@Override
631639
public void apply(final Metafix metafix, final Record record, final List<String> params, final Map<String, String> options) {

metafix/src/test/java/org/metafacture/metafix/MetafixMethodTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4062,4 +4062,24 @@ public void shouldUriEncodePathSegmentWithoutSafeChars() {
40624062
);
40634063
}
40644064

4065+
@Test
4066+
public void shouldTransformStringToBase64() {
4067+
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(
4068+
"to_base64('data.title')"),
4069+
i -> {
4070+
i.startRecord("1");
4071+
i.startEntity("data");
4072+
i.literal("title", "this-is-a-test");
4073+
i.endEntity();
4074+
i.endRecord();
4075+
},
4076+
o -> {
4077+
o.get().startRecord("1");
4078+
o.get().startEntity("data");
4079+
o.get().literal("title", "dGhpcy1pcy1hLXRlc3Q=");
4080+
o.get().endEntity();
4081+
o.get().endRecord();
4082+
});
4083+
}
4084+
40654085
}

0 commit comments

Comments
 (0)