Change AWS SMS type from Promotional to Transactional

This commit is contained in:
Andrii Shvaika 2020-12-14 18:26:18 +02:00
parent b7afd7991e
commit b22404e9fb

View File

@ -20,6 +20,7 @@ import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials; import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.sns.AmazonSNS; import com.amazonaws.services.sns.AmazonSNS;
import com.amazonaws.services.sns.AmazonSNSClient; import com.amazonaws.services.sns.AmazonSNSClient;
import com.amazonaws.services.sns.model.MessageAttributeValue;
import com.amazonaws.services.sns.model.PublishRequest; import com.amazonaws.services.sns.model.PublishRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -28,9 +29,20 @@ import org.thingsboard.rule.engine.api.sms.exception.SmsException;
import org.thingsboard.rule.engine.api.sms.exception.SmsSendException; import org.thingsboard.rule.engine.api.sms.exception.SmsSendException;
import org.thingsboard.server.service.sms.AbstractSmsSender; import org.thingsboard.server.service.sms.AbstractSmsSender;
import java.util.HashMap;
import java.util.Map;
@Slf4j @Slf4j
public class AwsSmsSender extends AbstractSmsSender { public class AwsSmsSender extends AbstractSmsSender {
private static final Map<String, MessageAttributeValue> SMS_ATTRIBUTES = new HashMap<>();
static {
SMS_ATTRIBUTES.put("AWS.SNS.SMS.SMSType", new MessageAttributeValue()
.withStringValue("Transactional")
.withDataType("String"));
}
private AmazonSNS snsClient; private AmazonSNS snsClient;
public AwsSmsSender(AwsSnsSmsProviderConfiguration config) { public AwsSmsSender(AwsSnsSmsProviderConfiguration config) {
@ -51,6 +63,7 @@ public class AwsSmsSender extends AbstractSmsSender {
message = this.prepareMessage(message); message = this.prepareMessage(message);
try { try {
PublishRequest publishRequest = new PublishRequest() PublishRequest publishRequest = new PublishRequest()
.withMessageAttributes(SMS_ATTRIBUTES)
.withPhoneNumber(numberTo) .withPhoneNumber(numberTo)
.withMessage(message); .withMessage(message);
this.snsClient.publish(publishRequest); this.snsClient.publish(publishRequest);