Address code review comments

This commit is contained in:
Ehren Kret 2020-07-14 10:28:03 -05:00
parent b7e0e5a356
commit a7968ccc3c
2 changed files with 9 additions and 14 deletions

View File

@ -1,6 +1,6 @@
package org.whispersystems.textsecuregcm.sms;
import com.google.common.base.Strings;
import org.apache.commons.lang3.StringUtils;
import org.whispersystems.textsecuregcm.configuration.TwilioCountrySenderIdConfiguration;
import org.whispersystems.textsecuregcm.configuration.TwilioSenderIdConfiguration;
import org.whispersystems.textsecuregcm.util.Util;
@ -12,12 +12,12 @@ import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
public class SenderIdStrategy {
class SenderIdSelector {
private final String defaultSenderId;
private final Map<String, String> countrySpecificSenderIds;
private final Set<String> countryCodesWithoutSenderId;
public SenderIdStrategy(String defaultSenderId, List<TwilioCountrySenderIdConfiguration> countrySpecificSenderIds, Set<String> countryCodesWithoutSenderId) {
SenderIdSelector(String defaultSenderId, List<TwilioCountrySenderIdConfiguration> countrySpecificSenderIds, Set<String> countryCodesWithoutSenderId) {
this.defaultSenderId = defaultSenderId;
this.countrySpecificSenderIds = countrySpecificSenderIds.stream().collect(Collectors.toMap(
TwilioCountrySenderIdConfiguration::getCountryCode,
@ -25,23 +25,18 @@ public class SenderIdStrategy {
this.countryCodesWithoutSenderId = countryCodesWithoutSenderId;
}
public SenderIdStrategy(TwilioSenderIdConfiguration configuration) {
SenderIdSelector(TwilioSenderIdConfiguration configuration) {
this(configuration.getDefaultSenderId(),
configuration.getCountrySpecificSenderIds(),
configuration.getCountryCodesWithoutSenderId());
}
public Optional<String> get(@NotNull String destination) {
Optional<String> getSenderId(@NotNull String destination) {
final String countryCode = Util.getCountryCode(destination);
if (countryCodesWithoutSenderId.contains(countryCode)) {
return Optional.empty();
}
final String countrySpecificSenderId = countrySpecificSenderIds.get(countryCode);
if (!Strings.isNullOrEmpty(countrySpecificSenderId)) {
return Optional.of(countrySpecificSenderId);
}
return Optional.ofNullable(defaultSenderId);
return Optional.ofNullable(StringUtils.stripToNull(countrySpecificSenderIds.getOrDefault(countryCode, defaultSenderId)));
}
}

View File

@ -65,8 +65,8 @@ public class TwilioSmsSender {
private final ArrayList<String> numbers;
private final String messagingServicesId;
private final String localDomain;
private final SenderIdSelector senderIdSelector;
private final Random random;
private final SenderIdStrategy senderIdStrategy;
private final FaultTolerantHttpClient httpClient;
private final URI smsUri;
@ -81,7 +81,7 @@ public class TwilioSmsSender {
this.numbers = new ArrayList<>(twilioConfiguration.getNumbers());
this.localDomain = twilioConfiguration.getLocalDomain();
this.messagingServicesId = twilioConfiguration.getMessagingServicesId();
this.senderIdStrategy = new SenderIdStrategy(twilioConfiguration.getSenderId());
this.senderIdSelector = new SenderIdSelector(twilioConfiguration.getSenderId());
this.random = new Random(System.currentTimeMillis());
this.smsUri = URI.create(baseUri + "/2010-04-01/Accounts/" + accountId + "/Messages.json");
this.voxUri = URI.create(baseUri + "/2010-04-01/Accounts/" + accountId + "/Calls.json" );
@ -174,7 +174,7 @@ public class TwilioSmsSender {
}
private void setOriginationRequestParameter(String destination, Map<String, String> requestParameters) {
final Optional<String> senderId = senderIdStrategy.get(destination);
final Optional<String> senderId = senderIdSelector.getSenderId(destination);
if (senderId.isPresent()) {
requestParameters.put("From", senderId.get());
} else if (Util.isEmpty(messagingServicesId)) {