Skip to content

Commit

Permalink
For a triggered SMS message, check if notification flag is set. If so…
Browse files Browse the repository at this point in the history
…, send to GCM service.
  • Loading branch information
conradsp committed Feb 16, 2018
1 parent e3ce5f3 commit e2ae145
Showing 1 changed file with 25 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -194,21 +194,38 @@ private void connectAndSendToIntermediateServer(Collection<SmsMessageApiQueueRes
public void sendTriggeredMessages(Map<SmsCampaign, Collection<SmsMessage>> smsDataMap) {
try {
if (!smsDataMap.isEmpty()) {
List<SmsMessage> toSaveMessages = new ArrayList<>() ;
List<SmsMessage> toSendNotificationMessages = new ArrayList<>() ;
for (Entry<SmsCampaign, Collection<SmsMessage>> entry : smsDataMap.entrySet()) {
Iterator<SmsMessage> smsMessageIterator = entry.getValue().iterator();
Collection<SmsMessageApiQueueResourceData> apiQueueResourceDatas = new ArrayList<>();
StringBuilder request = new StringBuilder();
while (smsMessageIterator.hasNext()) {
SmsMessage smsMessage = smsMessageIterator.next();
SmsMessageApiQueueResourceData apiQueueResourceData = SmsMessageApiQueueResourceData.instance(smsMessage.getId(),
null, null, null, smsMessage.getMobileNo(), smsMessage.getMessage(), entry.getKey().getProviderId());
apiQueueResourceDatas.add(apiQueueResourceData);
smsMessage.setStatusType(SmsMessageStatusType.WAITING_FOR_DELIVERY_REPORT.getValue());
if(smsMessage.isNotification()){
smsMessage.setStatusType(SmsMessageStatusType.WAITING_FOR_DELIVERY_REPORT.getValue());
toSendNotificationMessages.add(smsMessage);
}else {
SmsMessageApiQueueResourceData apiQueueResourceData = SmsMessageApiQueueResourceData.instance(smsMessage.getId(),
null, null, null, smsMessage.getMobileNo(), smsMessage.getMessage(), entry.getKey().getProviderId());
apiQueueResourceDatas.add(apiQueueResourceData);
smsMessage.setStatusType(SmsMessageStatusType.WAITING_FOR_DELIVERY_REPORT.getValue());
toSaveMessages.add(smsMessage) ;
}
}
if(toSaveMessages.size()>0){
this.smsMessageRepository.save(toSaveMessages);
this.smsMessageRepository.flush();
//this.smsMessageRepository.save(entry.getValue());
//request.append(SmsMessageApiQueueResourceData.toJsonString(apiQueueResourceDatas));
//logger.info("Sending triggered SMS with request - " + request.toString());
this.triggeredExecutorService.execute(new SmsTask(ThreadLocalContextUtil.getTenant(), apiQueueResourceDatas));
}
this.smsMessageRepository.save(entry.getValue()) ;
request.append(SmsMessageApiQueueResourceData.toJsonString(apiQueueResourceDatas));
logger.info("Sending triggered SMS with request - " + request.toString());
this.triggeredExecutorService.execute(new SmsTask(ThreadLocalContextUtil.getTenant(), apiQueueResourceDatas));
if(!toSendNotificationMessages.isEmpty()){
this.notificationSenderService.sendNotification(toSendNotificationMessages);
}


}
}
} catch (Exception e) {
Expand Down

0 comments on commit e2ae145

Please sign in to comment.