diff --git a/rwb/src/main/java/org/avni_integration_service/rwb/dto/NudgeUserRequestDTO.java b/rwb/src/main/java/org/avni_integration_service/rwb/dto/NudgeUserRequestDTO.java index 92ac6afd..a8dac14a 100644 --- a/rwb/src/main/java/org/avni_integration_service/rwb/dto/NudgeUserRequestDTO.java +++ b/rwb/src/main/java/org/avni_integration_service/rwb/dto/NudgeUserRequestDTO.java @@ -4,35 +4,29 @@ public class NudgeUserRequestDTO { String userId; String userName; - String sinceDateTimeString; + String sinceNoOfDays; + String withinNoOfDays; - public NudgeUserRequestDTO(String userId, String userName, String sinceDateTimeString) { + public NudgeUserRequestDTO(String userId, String userName, String sinceNoOfDays, String withinNoOfDays) { this.userId = userId; this.userName = userName; - this.sinceDateTimeString = sinceDateTimeString; + this.sinceNoOfDays = sinceNoOfDays; + this.withinNoOfDays = withinNoOfDays; } public String getUserId() { return userId; } - public void setUserId(String userId) { - this.userId = userId; - } - public String getUserName() { return userName; } - public void setUserName(String userName) { - this.userName = userName; - } - - public String getSinceDateTimeString() { - return sinceDateTimeString; + public String getSinceNoOfDays() { + return sinceNoOfDays; } - public void setSinceDateTimeString(String sinceDateTimeString) { - this.sinceDateTimeString = sinceDateTimeString; + public String getWithinNoOfDays() { + return withinNoOfDays; } } diff --git a/rwb/src/main/java/org/avni_integration_service/rwb/repository/AvniRwbUserNudgeRepository.java b/rwb/src/main/java/org/avni_integration_service/rwb/repository/AvniRwbUserNudgeRepository.java index 8b3e7cff..d4134b27 100644 --- a/rwb/src/main/java/org/avni_integration_service/rwb/repository/AvniRwbUserNudgeRepository.java +++ b/rwb/src/main/java/org/avni_integration_service/rwb/repository/AvniRwbUserNudgeRepository.java @@ -34,7 +34,7 @@ private ManualMessageContract createMessageRequestToNudgeUser(NudgeUserRequestDT manualMessageContract.setReceiverType(ReceiverType.User); manualMessageContract.setMessageTemplateId(nudgeMessageTemplateId); manualMessageContract.setParameters(new String[]{ - nudgeUserRequestDTO.getUserName(), nudgeUserRequestDTO.getSinceDateTimeString()}); //TODO set valid params required as per template + nudgeUserRequestDTO.getUserName(), nudgeUserRequestDTO.getSinceNoOfDays(), nudgeUserRequestDTO.getWithinNoOfDays()}); manualMessageContract.setScheduledDateTime(new DateTime()); //set current date time return manualMessageContract; } diff --git a/rwb/src/main/java/org/avni_integration_service/rwb/service/RwbUserNudgeErrorService.java b/rwb/src/main/java/org/avni_integration_service/rwb/service/RwbUserNudgeErrorService.java index a58afd6c..bfbc49c8 100644 --- a/rwb/src/main/java/org/avni_integration_service/rwb/service/RwbUserNudgeErrorService.java +++ b/rwb/src/main/java/org/avni_integration_service/rwb/service/RwbUserNudgeErrorService.java @@ -14,6 +14,7 @@ @Service public class RwbUserNudgeErrorService { private static final Logger logger = Logger.getLogger(RwbUserNudgeErrorService.class); + private static final String EMPTY_STRING = ""; private final ErrorRecordRepository errorRecordRepository; private final IntegrationSystemRepository integrationSystemRepository; @@ -40,8 +41,10 @@ public void saveUserNudgeError(String userId, Exception exception) { public void saveUserNudgeStatus(String userId, SendMessageResponse sendMessageResponse) { ErrorRecord errorRecord = getErrorRecord(userId); - ErrorType errorType = getErrorType(RwbSendMsgErrorType.getErrorType(sendMessageResponse.getMessageDeliveryStatus())); - String errorMsg = sendMessageResponse.getErrorMessage(); + RwbSendMsgErrorType rwbSendMsgErrorType = RwbSendMsgErrorType.getErrorType(sendMessageResponse.getMessageDeliveryStatus()); + ErrorType errorType = getErrorType(rwbSendMsgErrorType); + String errorMsg = rwbSendMsgErrorType.equals(RwbSendMsgErrorType.Success) ? EMPTY_STRING + : sendMessageResponse.getErrorMessage(); saveUserNudgeError(userId, errorRecord, errorType, errorMsg); } diff --git a/rwb/src/main/java/org/avni_integration_service/rwb/service/RwbUserNudgeService.java b/rwb/src/main/java/org/avni_integration_service/rwb/service/RwbUserNudgeService.java index a280476c..df86079e 100644 --- a/rwb/src/main/java/org/avni_integration_service/rwb/service/RwbUserNudgeService.java +++ b/rwb/src/main/java/org/avni_integration_service/rwb/service/RwbUserNudgeService.java @@ -19,26 +19,29 @@ @Service public class RwbUserNudgeService { - private final IntegratingEntityStatusRepository integratingEntityStatusRepository; private final AvniRwbUserNudgeRepository avniRwbUserNudgeRepository; private CustomQueryRequest customQueryRequest; - private int numberOfDays; + private int sinceNoOfDays; + private int withinNoOfDays; private static final Logger logger = Logger.getLogger(RwbUserNudgeService.class); @Autowired - public RwbUserNudgeService(IntegratingEntityStatusRepository integratingEntityStatusRepository, AvniRwbUserNudgeRepository avniRwbUserNudgeRepository, - @Value("${rwb.avni.nudge.custom.query.name}") String customQueryName, @Value("${rwb.avni.nudge.no.of.days}") int numberOfDays) { - this.integratingEntityStatusRepository = integratingEntityStatusRepository; + public RwbUserNudgeService(AvniRwbUserNudgeRepository avniRwbUserNudgeRepository, + @Value("${rwb.avni.nudge.custom.query.name}") String customQueryName, + @Value("${rwb.avni.nudge.since.no.of.days}") int sinceNoOfDays, + @Value("${rwb.avni.nudge.within.no.of.days}") int withinNoOfDays) { this.avniRwbUserNudgeRepository = avniRwbUserNudgeRepository; - this.customQueryRequest = new CustomQueryRequest(customQueryName, numberOfDays); - this.numberOfDays = numberOfDays; + this.customQueryRequest = new CustomQueryRequest(customQueryName, sinceNoOfDays); + this.sinceNoOfDays = sinceNoOfDays; + this.withinNoOfDays = withinNoOfDays; } public List getUsersThatHaveToReceiveNudge() { CustomQueryResponse customQueryResponse = avniRwbUserNudgeRepository.executeCustomQuery(customQueryRequest); + logger.info(String.format("Custom Query returned %d number of users to nudge", customQueryResponse.getTotal())); return customQueryResponse.getData().stream().map(row -> new NudgeUserRequestDTO(row.get(0).toString(), row.get(1).toString(), - FormatAndParseUtil.toHumanReadableFormat(DateTime.now().minusDays(numberOfDays).toDate()))).collect(Collectors.toList()); + String.valueOf(sinceNoOfDays), String.valueOf(withinNoOfDays))).collect(Collectors.toList()); } public SendMessageResponse nudgeUser(NudgeUserRequestDTO nudgeUserRequestDTO) { diff --git a/rwb/src/main/java/org/avni_integration_service/rwb/worker/RWBUsersNudgeWorker.java b/rwb/src/main/java/org/avni_integration_service/rwb/worker/RWBUsersNudgeWorker.java index d63939c9..6ff039f9 100644 --- a/rwb/src/main/java/org/avni_integration_service/rwb/worker/RWBUsersNudgeWorker.java +++ b/rwb/src/main/java/org/avni_integration_service/rwb/worker/RWBUsersNudgeWorker.java @@ -35,7 +35,7 @@ private void processUser(NudgeUserRequestDTO nudgeUserRequestDTO) { ErrorRecord errorRecord = rwbUserNudgeErrorService.getErrorRecord(nudgeUserRequestDTO.getUserId()); if(errorRecord != null && errorRecord.getLastErrorRecordLog().getErrorType().getName().equals(RwbSendMsgErrorType.Success.name()) && DateTimeUtil.differenceWithNowLessThanInterval(errorRecord.getLastErrorRecordLog().getLoggedAt(), 7, Calendar.DAY_OF_MONTH)) { - logger.info(String.format("User has already been nudged successfully in the last 1 week %s", nudgeUserRequestDTO.getUserId())); + logger.debug(String.format("User has already been nudged successfully in the last 1 week %s", nudgeUserRequestDTO.getUserId())); return; } SendMessageResponse sendMessageResponse = rwbUserNudgeService.nudgeUser(nudgeUserRequestDTO); diff --git a/rwb/src/main/resources/rwb-application.properties b/rwb/src/main/resources/rwb-application.properties index 93325c9f..62f570d3 100644 --- a/rwb/src/main/resources/rwb-application.properties +++ b/rwb/src/main/resources/rwb-application.properties @@ -10,5 +10,6 @@ rwb.avni.authentication.enabled=true #Nudge-users rwb.avni.nudge.custom.query.name=${RWB_AVNI_NUDGE_CUSTOM_QUERY_NAME:Inactive users} -rwb.avni.nudge.no.of.days=${RWB_AVNI_NUDGE_NO_OF_DAYS:05} -rwb.avni.message.template.id=${RWB_AVNI_MESSAGE_TEMPLATE_ID:333223} +rwb.avni.nudge.since.no.of.days=${RWB_AVNI_NUDGE_NO_OF_DAYS:03} +rwb.avni.nudge.within.no.of.days=${RWB_AVNI_NUDGE_NO_OF_DAYS:03} +rwb.avni.message.template.id=${RWB_AVNI_MESSAGE_TEMPLATE_ID:542195}