Address code review comments
This commit is contained in:
parent
b7e0e5a356
commit
a7968ccc3c
|
@ -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)));
|
||||
}
|
||||
}
|
|
@ -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)) {
|
||||
|
|
Loading…
Reference in New Issue