diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..a2be20b Binary files /dev/null and b/.DS_Store differ diff --git a/src/main/java/zw/qantra/tm/domain/models/Otp.java b/src/main/java/zw/qantra/tm/domain/models/Otp.java index 425cb09..3727f73 100644 --- a/src/main/java/zw/qantra/tm/domain/models/Otp.java +++ b/src/main/java/zw/qantra/tm/domain/models/Otp.java @@ -1,6 +1,7 @@ package zw.qantra.tm.domain.models; +import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; import lombok.*; import zw.qantra.tm.domain.enums.Status; @@ -16,6 +17,7 @@ import zw.qantra.tm.domain.enums.Status; @NoArgsConstructor public class Otp extends BaseEntity{ private String username; + @JsonIgnore private String otp; @Enumerated(EnumType.STRING) @Column(name = "otp_status") diff --git a/src/main/java/zw/qantra/tm/domain/services/NotificationService.java b/src/main/java/zw/qantra/tm/domain/services/NotificationService.java index f59640c..596a5f9 100644 --- a/src/main/java/zw/qantra/tm/domain/services/NotificationService.java +++ b/src/main/java/zw/qantra/tm/domain/services/NotificationService.java @@ -18,6 +18,8 @@ import zw.qantra.tm.rest.RestService; import java.io.BufferedReader; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; import java.util.stream.Collectors; @Service @@ -35,6 +37,11 @@ public class NotificationService { @Value("${sms.debug}") private Boolean smsDebug; + @Value("${wa.api.url}") + private String waApiUrl; + @Value("${wa.api.key}") + private String waApiKey; + @Async public void sendEmail(String to, String subject, String text) { sendEmailWithHtml(to, subject, text, null); @@ -97,6 +104,24 @@ public class NotificationService { } } + @Async + public void sendWA(String chatId, String text) { + try { + Map payload = new HashMap<>(); + payload.put("chatId", chatId); + payload.put("text", text); + + HttpHeaders headers = new HttpHeaders(); + headers.set("X-API-Key", waApiKey); + + restService.postWithExternalAuth(waApiUrl, payload, headers, Object.class); + + logger.info("WA message sent to {}: {}", chatId, text); + } catch (Exception e) { + logger.error("Failed to send WA message to {}: {}", chatId, e.getMessage(), e); + } + } + @Async public void sendSms(String to, String message) { if(smsDebug) { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index f006aee..0827306 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -90,4 +90,7 @@ sms-pop.url=https://smspop.co.zw/api/campaigns sms-pop.apikey=108|ypBpUtJGlPzelxJl2aySp672I9KKbyaQPtcxMPBrfb70be27 cloudflare-token=cfut_U0qhvhzAATLqHQa9lad7oRmBmPoJ6n9uIoCBbNOWc9884f18 -cloudflare-zone-id=378cea8e50c0d9a158816109b3b1fd8d \ No newline at end of file +cloudflare-zone-id=378cea8e50c0d9a158816109b3b1fd8d + +wa.api.url=http://173.212.247.232:2785/api/sessions/70eae8dc-2be8-465a-a54b-b6c1d3313699/messages/send-text +wa.api.key=owa_k1_3d2198d81573303f0b48c3c4a6981fd13261b1d0099758eabf4efb53beaba77d