Skip to content

Commit aacf8e0

Browse files
enhance welcome sms code
1 parent d97a721 commit aacf8e0

2 files changed

Lines changed: 61 additions & 44 deletions

File tree

src/main/java/com/iemr/common/service/beneficiary/RegisterBenificiaryServiceImpl.java

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -223,9 +223,26 @@ public String save(BeneficiaryModel beneficiaryModel, HttpServletRequest servlet
223223
} else {
224224
return response.toString();
225225
}
226-
if(beneficiary!=null){
227-
if(beneficiary.getBenPhoneMaps().get(0).getPhoneNo()!=null){
228-
welcomeBenificarySmsService.sendWelcomeSMStoBenificiary(beneficiary.getBenPhoneMaps().get(0).getPhoneNo(),beneficiary.getFirstName()+" "+beneficiary.getLastName(),beneficiary.getBeneficiaryID());
226+
if (beneficiary != null && beneficiary.getBenPhoneMaps() != null && !beneficiary.getBenPhoneMaps().isEmpty()) {
227+
String phoneNo = beneficiary.getBenPhoneMaps().get(0).getPhoneNo();
228+
229+
if (phoneNo != null && !phoneNo.trim().isEmpty()) {
230+
String beneficiaryName = (beneficiary.getFirstName() != null ? beneficiary.getFirstName() : "") + " " +
231+
(beneficiary.getLastName() != null ? beneficiary.getLastName() : "");
232+
233+
try {
234+
logger.info("[SMS] Attempting to send welcome SMS to: " + phoneNo);
235+
String smsResult = welcomeBenificarySmsService.sendWelcomeSMStoBenificiary(
236+
phoneNo,
237+
beneficiaryName.trim(),
238+
beneficiary.getBeneficiaryID()
239+
);
240+
logger.info("[SMS] Result: " + smsResult);
241+
} catch (Exception smsError) {
242+
// SMS failed but beneficiary is already created - don't fail the request
243+
logger.warn("[SMS] Failed to send SMS: " + smsError.getMessage() +
244+
" - But beneficiary already created successfully");
245+
}
229246
}
230247
}
231248

src/main/java/com/iemr/common/service/welcomeSms/WelcomeBenificarySmsServiceImpl.java

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.springframework.http.HttpHeaders;
1313
import org.springframework.http.MediaType;
1414
import org.springframework.http.ResponseEntity;
15+
import org.springframework.scheduling.annotation.Async;
1516
import org.springframework.stereotype.Service;
1617
import org.springframework.web.client.RestTemplate;
1718

@@ -46,58 +47,57 @@ public class WelcomeBenificarySmsServiceImpl implements WelcomeBenificarySmsServ
4647

4748
private String smsTemplateName = "welcome_sms";
4849

49-
private String smsTemplate;
50+
private String smsTemplate =null;
5051

5152
@Override
53+
@Async
5254
public String sendWelcomeSMStoBenificiary(String contactNo, String beneficiaryName, String beneficiaryId) {
53-
final RestTemplate restTemplate = new RestTemplate();
54-
55-
Optional<SMSTemplate> smsTemplateData = smsTemplateRepository.findBySmsTemplateName(smsTemplateName);
56-
if (smsTemplateData.isPresent()) {
57-
smsTemplate = smsTemplateRepository.findBySmsTemplateID(smsTemplateData.get().getSmsTemplateID()).getSmsTemplate();
58-
59-
}
60-
61-
logger.info("sms template" + smsTemplate);
62-
63-
64-
String sendSMSAPI = SMS_GATEWAY_URL;
6555

6656
try {
57+
String sendSMSAPI = SMS_GATEWAY_URL;
6758

68-
String message = smsTemplate.replace("$$BENE_NAME$$", beneficiaryName).replace("$$BEN_ID$$", beneficiaryId);
69-
// Build payload
70-
Map<String, Object> payload = new HashMap<>();
71-
payload.put("customerId", smsUserName);
72-
payload.put("destinationAddress", contactNo);
73-
payload.put("message", message);
74-
payload.put("sourceAddress", smsSourceAddress);
75-
payload.put("messageType", "SERVICE_IMPLICIT");
76-
payload.put("dltTemplateId", smsTemplateData.get().getDltTemplateId());
77-
payload.put("entityId", smsEntityId);
78-
// Set headers
79-
HttpHeaders headers = new HttpHeaders();
80-
String auth = smsUserName + ":" + smsPassword;
81-
headers.add("Authorization",
82-
"Basic " + Base64.getEncoder().encodeToString(auth.getBytes()));
83-
84-
headers.setContentType(MediaType.APPLICATION_JSON);
85-
logger.info("payload: " + payload);
86-
HttpEntity<Map<String, Object>> request = new HttpEntity<>(payload, headers);
87-
88-
// Call API
89-
ResponseEntity<String> response = restTemplate.postForEntity(sendSMSAPI, request, String.class);
90-
logger.info("sms-response:" + response.getBody());
91-
if (response.getStatusCode().value() == 200) {
92-
return "OTP sent successfully on register mobile number";
93-
} else {
94-
return "Fail";
59+
final RestTemplate restTemplate = new RestTemplate();
9560

61+
Optional<SMSTemplate> smsTemplateData = smsTemplateRepository.findBySmsTemplateName(smsTemplateName);
62+
if (smsTemplateData.isPresent()) {
63+
smsTemplate = smsTemplateRepository.findBySmsTemplateID(smsTemplateData.get().getSmsTemplateID()).getSmsTemplate();
64+
}
65+
if(smsTemplate!=null){
66+
String message = smsTemplate.replace("$$BENE_NAME$$", beneficiaryName).replace("$$BEN_ID$$", beneficiaryId);
67+
// Build payload
68+
Map<String, Object> payload = new HashMap<>();
69+
payload.put("customerId", smsUserName);
70+
payload.put("destinationAddress", contactNo);
71+
payload.put("message", message);
72+
payload.put("sourceAddress", smsSourceAddress);
73+
payload.put("messageType", "SERVICE_IMPLICIT");
74+
payload.put("dltTemplateId", smsTemplateData.get().getDltTemplateId());
75+
payload.put("entityId", smsEntityId);
76+
// Set headers
77+
HttpHeaders headers = new HttpHeaders();
78+
String auth = smsUserName + ":" + smsPassword;
79+
headers.add("Authorization",
80+
"Basic " + Base64.getEncoder().encodeToString(auth.getBytes()));
81+
82+
headers.setContentType(MediaType.APPLICATION_JSON);
83+
logger.info("payload: " + payload);
84+
HttpEntity<Map<String, Object>> request = new HttpEntity<>(payload, headers);
85+
86+
// Call API
87+
ResponseEntity<String> response = restTemplate.postForEntity(sendSMSAPI, request, String.class);
88+
logger.info("sms-response:" + response.getBody());
89+
if (response.getStatusCode().value() == 200) {
90+
return "OTP sent successfully on register mobile number";
91+
} else {
92+
return "Fail";
93+
94+
}
9695
}
9796

97+
9898
} catch (Exception e) {
9999
return "Error sending SMS: " + e.getMessage().toString();
100100
}
101-
101+
return null;
102102
}
103103
}

0 commit comments

Comments
 (0)