Pass a `CurrencyConversionManager` to `BraintreeManager`
This commit is contained in:
parent
3266c2cd8f
commit
516c481e94
|
@ -523,15 +523,6 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
|
||||||
ScheduledExecutorService subscriptionProcessorRetryExecutor = environment.lifecycle()
|
ScheduledExecutorService subscriptionProcessorRetryExecutor = environment.lifecycle()
|
||||||
.scheduledExecutorService(name(getClass(), "subscriptionProcessorRetry-%d")).threads(1).build();
|
.scheduledExecutorService(name(getClass(), "subscriptionProcessorRetry-%d")).threads(1).build();
|
||||||
|
|
||||||
StripeManager stripeManager = new StripeManager(config.getStripe().apiKey().value(), subscriptionProcessorExecutor,
|
|
||||||
config.getStripe().idempotencyKeyGenerator().value(), config.getStripe().boostDescription(), config.getStripe().supportedCurrenciesByPaymentMethod());
|
|
||||||
BraintreeManager braintreeManager = new BraintreeManager(config.getBraintree().merchantId(),
|
|
||||||
config.getBraintree().publicKey(), config.getBraintree().privateKey().value(),
|
|
||||||
config.getBraintree().environment(),
|
|
||||||
config.getBraintree().supportedCurrenciesByPaymentMethod(), config.getBraintree().merchantAccounts(),
|
|
||||||
config.getBraintree().graphqlUrl(), config.getBraintree().circuitBreaker(), subscriptionProcessorExecutor,
|
|
||||||
subscriptionProcessorRetryExecutor);
|
|
||||||
|
|
||||||
ExternalServiceCredentialsGenerator directoryV2CredentialsGenerator = DirectoryV2Controller.credentialsGenerator(
|
ExternalServiceCredentialsGenerator directoryV2CredentialsGenerator = DirectoryV2Controller.credentialsGenerator(
|
||||||
config.getDirectoryV2Configuration().getDirectoryV2ClientConfiguration());
|
config.getDirectoryV2Configuration().getDirectoryV2ClientConfiguration());
|
||||||
ExternalServiceCredentialsGenerator storageCredentialsGenerator = SecureStorageController.credentialsGenerator(
|
ExternalServiceCredentialsGenerator storageCredentialsGenerator = SecureStorageController.credentialsGenerator(
|
||||||
|
@ -661,6 +652,15 @@ public class WhisperServerService extends Application<WhisperServerConfiguration
|
||||||
() -> dynamicConfigurationManager.getConfiguration().getVirtualThreads().allowedPinEvents(),
|
() -> dynamicConfigurationManager.getConfiguration().getVirtualThreads().allowedPinEvents(),
|
||||||
config.getVirtualThreadConfiguration().pinEventThreshold());
|
config.getVirtualThreadConfiguration().pinEventThreshold());
|
||||||
|
|
||||||
|
StripeManager stripeManager = new StripeManager(config.getStripe().apiKey().value(), subscriptionProcessorExecutor,
|
||||||
|
config.getStripe().idempotencyKeyGenerator().value(), config.getStripe().boostDescription(), config.getStripe().supportedCurrenciesByPaymentMethod());
|
||||||
|
BraintreeManager braintreeManager = new BraintreeManager(config.getBraintree().merchantId(),
|
||||||
|
config.getBraintree().publicKey(), config.getBraintree().privateKey().value(),
|
||||||
|
config.getBraintree().environment(),
|
||||||
|
config.getBraintree().supportedCurrenciesByPaymentMethod(), config.getBraintree().merchantAccounts(),
|
||||||
|
config.getBraintree().graphqlUrl(), currencyManager, config.getBraintree().circuitBreaker(), subscriptionProcessorExecutor,
|
||||||
|
subscriptionProcessorRetryExecutor);
|
||||||
|
|
||||||
environment.lifecycle().manage(apnSender);
|
environment.lifecycle().manage(apnSender);
|
||||||
environment.lifecycle().manage(apnPushNotificationScheduler);
|
environment.lifecycle().manage(apnPushNotificationScheduler);
|
||||||
environment.lifecycle().manage(provisioningManager);
|
environment.lifecycle().manage(provisioningManager);
|
||||||
|
|
|
@ -42,6 +42,7 @@ import javax.ws.rs.core.Response;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.whispersystems.textsecuregcm.configuration.CircuitBreakerConfiguration;
|
import org.whispersystems.textsecuregcm.configuration.CircuitBreakerConfiguration;
|
||||||
|
import org.whispersystems.textsecuregcm.currency.CurrencyConversionManager;
|
||||||
import org.whispersystems.textsecuregcm.http.FaultTolerantHttpClient;
|
import org.whispersystems.textsecuregcm.http.FaultTolerantHttpClient;
|
||||||
import org.whispersystems.textsecuregcm.util.SystemMapper;
|
import org.whispersystems.textsecuregcm.util.SystemMapper;
|
||||||
import org.whispersystems.textsecuregcm.util.ua.ClientPlatform;
|
import org.whispersystems.textsecuregcm.util.ua.ClientPlatform;
|
||||||
|
@ -55,6 +56,7 @@ public class BraintreeManager implements SubscriptionProcessorManager {
|
||||||
private static final String PAYPAL_PAYMENT_ALREADY_COMPLETED_PROCESSOR_CODE = "2094";
|
private static final String PAYPAL_PAYMENT_ALREADY_COMPLETED_PROCESSOR_CODE = "2094";
|
||||||
private final BraintreeGateway braintreeGateway;
|
private final BraintreeGateway braintreeGateway;
|
||||||
private final BraintreeGraphqlClient braintreeGraphqlClient;
|
private final BraintreeGraphqlClient braintreeGraphqlClient;
|
||||||
|
private final CurrencyConversionManager currencyConversionManager;
|
||||||
private final Executor executor;
|
private final Executor executor;
|
||||||
private final Map<PaymentMethod, Set<String>> supportedCurrenciesByPaymentMethod;
|
private final Map<PaymentMethod, Set<String>> supportedCurrenciesByPaymentMethod;
|
||||||
private final Map<String, String> currenciesToMerchantAccounts;
|
private final Map<String, String> currenciesToMerchantAccounts;
|
||||||
|
@ -65,6 +67,7 @@ public class BraintreeManager implements SubscriptionProcessorManager {
|
||||||
final Map<PaymentMethod, Set<String>> supportedCurrenciesByPaymentMethod,
|
final Map<PaymentMethod, Set<String>> supportedCurrenciesByPaymentMethod,
|
||||||
final Map<String, String> currenciesToMerchantAccounts,
|
final Map<String, String> currenciesToMerchantAccounts,
|
||||||
final String graphqlUri,
|
final String graphqlUri,
|
||||||
|
final CurrencyConversionManager currencyConversionManager,
|
||||||
final CircuitBreakerConfiguration circuitBreakerConfiguration,
|
final CircuitBreakerConfiguration circuitBreakerConfiguration,
|
||||||
final Executor executor,
|
final Executor executor,
|
||||||
final ScheduledExecutorService retryExecutor) {
|
final ScheduledExecutorService retryExecutor) {
|
||||||
|
@ -83,6 +86,7 @@ public class BraintreeManager implements SubscriptionProcessorManager {
|
||||||
// https://developer.paypal.com/braintree/docs/reference/general/best-practices/java#timeouts
|
// https://developer.paypal.com/braintree/docs/reference/general/best-practices/java#timeouts
|
||||||
.withRequestTimeout(Duration.ofSeconds(70))
|
.withRequestTimeout(Duration.ofSeconds(70))
|
||||||
.build(), graphqlUri, braintreePublicKey, braintreePrivateKey),
|
.build(), graphqlUri, braintreePublicKey, braintreePrivateKey),
|
||||||
|
currencyConversionManager,
|
||||||
executor);
|
executor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,11 +94,12 @@ public class BraintreeManager implements SubscriptionProcessorManager {
|
||||||
BraintreeManager(final BraintreeGateway braintreeGateway,
|
BraintreeManager(final BraintreeGateway braintreeGateway,
|
||||||
final Map<PaymentMethod, Set<String>> supportedCurrenciesByPaymentMethod,
|
final Map<PaymentMethod, Set<String>> supportedCurrenciesByPaymentMethod,
|
||||||
final Map<String, String> currenciesToMerchantAccounts, final BraintreeGraphqlClient braintreeGraphqlClient,
|
final Map<String, String> currenciesToMerchantAccounts, final BraintreeGraphqlClient braintreeGraphqlClient,
|
||||||
final Executor executor) {
|
final CurrencyConversionManager currencyConversionManager, final Executor executor) {
|
||||||
this.braintreeGateway = braintreeGateway;
|
this.braintreeGateway = braintreeGateway;
|
||||||
this.supportedCurrenciesByPaymentMethod = supportedCurrenciesByPaymentMethod;
|
this.supportedCurrenciesByPaymentMethod = supportedCurrenciesByPaymentMethod;
|
||||||
this.currenciesToMerchantAccounts = currenciesToMerchantAccounts;
|
this.currenciesToMerchantAccounts = currenciesToMerchantAccounts;
|
||||||
this.braintreeGraphqlClient = braintreeGraphqlClient;
|
this.braintreeGraphqlClient = braintreeGraphqlClient;
|
||||||
|
this.currencyConversionManager = currencyConversionManager;
|
||||||
this.executor = executor;
|
this.executor = executor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ import java.util.Set;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.whispersystems.textsecuregcm.currency.CurrencyConversionManager;
|
||||||
|
|
||||||
class BraintreeManagerTest {
|
class BraintreeManagerTest {
|
||||||
|
|
||||||
|
@ -32,6 +33,7 @@ class BraintreeManagerTest {
|
||||||
Map.of(PaymentMethod.CARD, Set.of("usd")),
|
Map.of(PaymentMethod.CARD, Set.of("usd")),
|
||||||
Map.of("usd", "usdMerchant"),
|
Map.of("usd", "usdMerchant"),
|
||||||
mock(BraintreeGraphqlClient.class),
|
mock(BraintreeGraphqlClient.class),
|
||||||
|
mock(CurrencyConversionManager.class),
|
||||||
Executors.newSingleThreadExecutor());
|
Executors.newSingleThreadExecutor());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue