Skip to content

Commit

Permalink
avniproject/avni-server#825 | set valid params required as per user n…
Browse files Browse the repository at this point in the history
…udge template
  • Loading branch information
himeshr committed Jan 31, 2025
1 parent 00a42a2 commit 8c2cdc3
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<NudgeUserRequestDTO> 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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
5 changes: 3 additions & 2 deletions rwb/src/main/resources/rwb-application.properties
Original file line number Diff line number Diff line change
Expand Up @@ -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}

0 comments on commit 8c2cdc3

Please sign in to comment.