@Override
public void process(AGateway gateway, OutboundMessage msg) {
log.info(String.format("[%s] Outbound notification for (%s) with message (%s) received from gateway (%s)", msg.getMessageStatus().toString(), msg.getRecipient(), msg.getText(), gateway.getGatewayId()));
DateTime sentTime = newDateTime(msg.getDate());
if (sendingFailed(msg)) {
if (msg.getRetryCount() >= maxRetries) {
raiseFailureEvent(msg, sentTime);
} else if (msg.getRetryCount() < maxRetries) {
smsAuditService.log(new SmsRecord(OUTBOUND, msg.getRecipient(), msg.getText(), sentTime, KEEPTRYING, msg.getRefNo()));
}
} else {
smsAuditService.log(new SmsRecord(SMSType.OUTBOUND, msg.getRecipient(), msg.getText(), sentTime, DeliveryStatus.DISPATCHED, msg.getRefNo()));
}
}