Untitled
unknown
java
2 years ago
2.8 kB
6
Indexable
public static String getTransferAmount(String transactionDetails, String transactionType) throws JsonProcessingException { TypeReference<Map<String, String>> typeReference = new TypeReference<Map<String, String>>() { }; Map<String, String> map = mapper.readValue(transactionDetails, typeReference); Optional<String> transferAmounts; Optional<String> currency; switch (transactionType) { case ASBN_TOPUP_SUBCRIPTION, FPX_PAYMENT, "DuitNow": transferAmounts = Optional.ofNullable(map.values().stream().filter(val -> StringUtils.containsIgnoreCase(val, "Transfer Amount")).findFirst().orElse("-|-").split("\\|")[1]); currency = Optional.ofNullable(map.values().stream().filter(val -> StringUtils.containsIgnoreCase(val, FROM_ACCOUNT)).findFirst().orElse(CURRENCY_ELSE).split("\\|")[1].split(" ")[4]); break; case "DuitNow Request Authorization": transferAmounts = Optional.ofNullable(map.values().stream().filter(val -> StringUtils.containsIgnoreCase(val, "Request Amount")).findFirst().orElse("-|-").split("\\|")[1]); currency = Optional.ofNullable(map.values().stream().filter(val -> StringUtils.containsIgnoreCase(val, "Paying Account")).findFirst().orElse(CURRENCY_ELSE).split("\\|")[1].split(" ")[4]); break; case "DuitNow AutoDebit Registration": transferAmounts = Optional.ofNullable(map.values().stream().filter(val -> StringUtils.containsIgnoreCase(val, "Maximum Payment Amount")).findFirst().orElse("-|-").split("\\|")[1]); currency = Optional.ofNullable(map.values().stream().filter(val -> StringUtils.containsIgnoreCase(val, "duitNow.consent.register.fromAccount.label")).findFirst().orElse(CURRENCY_ELSE).split("\\|")[1].split(" ")[4]); break; case "Investment Withdrawal": transferAmounts = Optional.ofNullable(map.values().stream().filter(val -> StringUtils.containsIgnoreCase(val, "Amount")).findFirst().orElse("-|-").split("\\|")[1]); currency = Optional.of("MYR"); break; case "Account Opening", "Bill Presentment": transferAmounts = Optional.ofNullable(map.values().stream().filter(val -> StringUtils.containsIgnoreCase(val, "Amount")).findFirst().orElse("-|-").split("\\|")[1]); currency = Optional.ofNullable(map.values().stream().filter(val -> StringUtils.containsIgnoreCase(val, FROM_ACCOUNT)).findFirst().orElse(CURRENCY_ELSE).split("\\|")[1].split(" ")[4]); break; default: currency = Optional.of("-"); transferAmounts = Optional.of("-"); } return currency.orElse("-") + " " + transferAmounts.orElse("-"); }
Editor is loading...
Leave a Comment