updating sms vendor
This commit is contained in:
@@ -0,0 +1,19 @@
|
|||||||
|
package zw.qantra.tm.domain.dtos.sms;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SmsPopCampaignRequest {
|
||||||
|
private String name;
|
||||||
|
private String message;
|
||||||
|
private String sender_id;
|
||||||
|
@Builder.Default
|
||||||
|
private String contact_import_method = "manual";
|
||||||
|
private String manual_contacts;
|
||||||
|
}
|
||||||
@@ -12,16 +12,12 @@ import org.springframework.scheduling.annotation.Async;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import jakarta.mail.internet.MimeMessage;
|
import jakarta.mail.internet.MimeMessage;
|
||||||
import zw.qantra.tm.domain.dtos.sms.SmsApiResponse;
|
import zw.qantra.tm.domain.dtos.sms.SmsPopCampaignRequest;
|
||||||
import zw.qantra.tm.domain.dtos.sms.SmsBatchRequest;
|
|
||||||
import zw.qantra.tm.domain.dtos.sms.SmsMessage;
|
|
||||||
import zw.qantra.tm.rest.RestService;
|
import zw.qantra.tm.rest.RestService;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -32,10 +28,10 @@ public class NotificationService {
|
|||||||
private final RestService restService;
|
private final RestService restService;
|
||||||
private final JavaMailSender emailSender;
|
private final JavaMailSender emailSender;
|
||||||
|
|
||||||
@Value("${zss.sms.api.url}")
|
@Value("${sms-pop.url}")
|
||||||
private String smsApiUrl;
|
private String smsPopUrl;
|
||||||
@Value("${zss.sms.api.auth}")
|
@Value("${sms-pop.apikey}")
|
||||||
private String smsApiAuth;
|
private String smsPopApiKey;
|
||||||
@Value("${sms.debug}")
|
@Value("${sms.debug}")
|
||||||
private Boolean smsDebug;
|
private Boolean smsDebug;
|
||||||
|
|
||||||
@@ -108,28 +104,25 @@ public class NotificationService {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
SmsMessage smsMessage = SmsMessage.builder()
|
String phoneNumber = to;
|
||||||
.reference(UUID.randomUUID().toString())
|
if (phoneNumber.startsWith("+")) {
|
||||||
.message(message)
|
phoneNumber = phoneNumber.substring(1);
|
||||||
.msisdn(to)
|
}
|
||||||
.build();
|
|
||||||
|
|
||||||
SmsBatchRequest batchRequest = SmsBatchRequest.builder()
|
SmsPopCampaignRequest campaignRequest = SmsPopCampaignRequest.builder()
|
||||||
.batchReference(UUID.randomUUID().toString())
|
.name("Velocity Payments")
|
||||||
.smsList(Collections.singletonList(smsMessage))
|
.message(message)
|
||||||
|
.sender_id("Velocity")
|
||||||
|
.contact_import_method("manual")
|
||||||
|
.manual_contacts(phoneNumber)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.set("Authorization", smsApiAuth);
|
headers.set("Authorization", "Bearer " + smsPopApiKey);
|
||||||
|
|
||||||
SmsApiResponse response = restService.postWithExternalAuth(
|
restService.postAs(smsPopUrl, campaignRequest, headers, Object.class);
|
||||||
smsApiUrl,
|
|
||||||
batchRequest,
|
|
||||||
headers,
|
|
||||||
SmsApiResponse.class
|
|
||||||
);
|
|
||||||
|
|
||||||
logger.info("SMS sent to {} - Status: {}, Result: {}", to, response.getStatus(), response.getResult());
|
logger.info("SMS sent to {} via SMSPOP", to);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("Failed to send SMS to {}: {}", to, e.getMessage(), e);
|
logger.error("Failed to send SMS to {}: {}", to, e.getMessage(), e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,9 +84,10 @@ jobrunr.datasource.password=
|
|||||||
app.reports.storage-path=/srv/data/reports
|
app.reports.storage-path=/srv/data/reports
|
||||||
app.base-url=https://payapi.velocityafrica.net
|
app.base-url=https://payapi.velocityafrica.net
|
||||||
|
|
||||||
zss.sms.api.url=https://secure.zss.co.zw/vportal/cnm/vsms/json/batch
|
|
||||||
zss.sms.api.auth=Basic UWFudHJhdGVjaDpVbUk3OUpwUDh3QTY=
|
|
||||||
sms.debug=false
|
sms.debug=false
|
||||||
|
|
||||||
|
sms-pop.url=https://smspop.co.zw/api/campaigns
|
||||||
|
sms-pop.apikey=108|ypBpUtJGlPzelxJl2aySp672I9KKbyaQPtcxMPBrfb70be27
|
||||||
|
|
||||||
cloudflare-token=cfut_U0qhvhzAATLqHQa9lad7oRmBmPoJ6n9uIoCBbNOWc9884f18
|
cloudflare-token=cfut_U0qhvhzAATLqHQa9lad7oRmBmPoJ6n9uIoCBbNOWc9884f18
|
||||||
cloudflare-zone-id=378cea8e50c0d9a158816109b3b1fd8d
|
cloudflare-zone-id=378cea8e50c0d9a158816109b3b1fd8d
|
||||||
Reference in New Issue
Block a user