mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-20 17:18:06 +01:00
Trigger pub/sub events for one-time donations via Braintree (PayPal)
This commit is contained in:
committed by
Jon Chambers
parent
516c481e94
commit
8999f0104f
@@ -10,12 +10,14 @@ import io.dropwizard.lifecycle.Managed;
|
||||
import io.lettuce.core.SetArgs;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.time.Clock;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
@@ -166,4 +168,18 @@ public class CurrencyConversionManager implements Managed {
|
||||
return n;
|
||||
}
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void setCachedFixerValues(final Map<String, BigDecimal> cachedFixerValues) {
|
||||
this.cachedFixerValues = cachedFixerValues;
|
||||
}
|
||||
|
||||
public Optional<BigDecimal> convertToUsd(final BigDecimal amount, final String currency) {
|
||||
if ("USD".equalsIgnoreCase(currency)) {
|
||||
return Optional.of(amount);
|
||||
}
|
||||
|
||||
return Optional.ofNullable(cachedFixerValues.get(currency.toUpperCase(Locale.ROOT)))
|
||||
.map(conversionRate -> amount.divide(conversionRate, 2, RoundingMode.HALF_EVEN));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user