From 9b039ff1365065af69c9a54156d053e870e9ca9c Mon Sep 17 00:00:00 2001 From: Hemant Gupta Date: Sat, 10 Sep 2022 00:22:03 +0530 Subject: [PATCH] refactor: add lombok to emailcampaigns module --- .../email/data/EmailBusinessRulesData.java | 51 ++---- .../email/data/EmailCampaignData.java | 129 ++++----------- .../email/data/EmailCampaignTimeLine.java | 27 ++- .../email/data/EmailConfigurationData.java | 40 ++--- .../campaigns/email/data/EmailData.java | 156 ++++-------------- .../data/EmailMessageWithAttachmentData.java | 38 ++--- .../email/data/PreviewCampaignMessage.java | 23 +-- .../campaigns/email/domain/EmailCampaign.java | 154 +++-------------- .../email/domain/EmailConfiguration.java | 33 +--- .../campaigns/email/domain/EmailMessage.java | 84 ++-------- .../EmailCampaignReadPlatformServiceImpl.java | 5 +- ...mpaignWritePlatformCommandHandlerImpl.java | 21 +-- ...lConfigurationReadPlatformServiceImpl.java | 2 + ...ConfigurationWritePlatformServiceImpl.java | 11 +- .../EmailMessageJobEmailServiceImpl.java | 8 +- .../service/EmailReadPlatformServiceImpl.java | 11 +- ...WritePlatformServiceJpaRepositoryImpl.java | 11 +- .../executeemail/ExecuteEmailTasklet.java | 2 +- ...ailOutboundWithCampaignMessageTasklet.java | 2 +- .../dataqueries/data/ReportData.java | 2 +- 20 files changed, 185 insertions(+), 625 deletions(-) diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailBusinessRulesData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailBusinessRulesData.java index 1223b910e..d4611e79f 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailBusinessRulesData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailBusinessRulesData.java @@ -19,60 +19,37 @@ package org.apache.fineract.infrastructure.campaigns.email.data; import java.util.Map; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; +@Data +@NoArgsConstructor +@Accessors(chain = true) public class EmailBusinessRulesData { @SuppressWarnings("unused") - private final Long reportId; + private Long reportId; @SuppressWarnings("unused") - private final String reportName; + private String reportName; @SuppressWarnings("unused") - private final String reportType; + private String reportType; @SuppressWarnings("unused") - private final String reportSubType; + private String reportSubType; @SuppressWarnings("unused") - private final String reportDescription; + private String reportDescription; @SuppressWarnings("unused") - private final Map reportParamName; - - public EmailBusinessRulesData(final Long reportId, final String reportName, final String reportType, - final Map reportParamName, final String reportSubType, final String reportDescription) { - this.reportId = reportId; - this.reportName = reportName; - this.reportType = reportType; - this.reportParamName = reportParamName; - this.reportDescription = reportDescription; - this.reportSubType = reportSubType; - } + private Map reportParamName; public static EmailBusinessRulesData instance(final Long reportId, final String reportName, final String reportType, final Map reportParamName, final String reportSubType, final String reportDescription) { - return new EmailBusinessRulesData(reportId, reportName, reportType, reportParamName, reportSubType, reportDescription); - } - - public Map getReportParamName() { - return reportParamName; - } - - public String getReportType() { - return reportType; - } - - public String getReportName() { - return reportName; - } - - public Long getReportId() { - return reportId; - } - - public String getReportDescription() { - return reportDescription; + return new EmailBusinessRulesData().setReportId(reportId).setReportName(reportName).setReportType(reportType) + .setReportParamName(reportParamName).setReportSubType(reportSubType).setReportDescription(reportDescription); } @Override diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignData.java index 097b0e666..b46c4502b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignData.java @@ -20,130 +20,59 @@ package org.apache.fineract.infrastructure.campaigns.email.data; import java.time.LocalDate; import java.time.ZonedDateTime; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; import org.apache.fineract.infrastructure.core.data.EnumOptionData; +@Data +@NoArgsConstructor +@Accessors(chain = true) public final class EmailCampaignData { @SuppressWarnings("unused") private Long id; @SuppressWarnings("unused") - private final String campaignName; + private String campaignName; @SuppressWarnings("unused") - private final Integer campaignType; + private Integer campaignType; @SuppressWarnings("unused") - private final Long businessRuleId; + private Long businessRuleId; @SuppressWarnings("unused") - private final String paramValue; + private String paramValue; @SuppressWarnings("unused") - private final EnumOptionData campaignStatus; + private EnumOptionData campaignStatus; @SuppressWarnings("unused") - private final String emailSubject; + private String emailSubject; @SuppressWarnings("unused") - private final String emailMessage; + private String emailMessage; @SuppressWarnings("unused") - private final String emailAttachmentFileFormat; + private String emailAttachmentFileFormat; @SuppressWarnings("unused") - private final Long stretchyReportId; + private Long stretchyReportId; @SuppressWarnings("unused") - private final String stretchyReportParamMap; + private String stretchyReportParamMap; @SuppressWarnings("unused") - private final ZonedDateTime nextTriggerDate; + private ZonedDateTime nextTriggerDate; @SuppressWarnings("unused") - private final LocalDate lastTriggerDate; + private LocalDate lastTriggerDate; @SuppressWarnings("unused") - private final EmailCampaignTimeLine emailCampaignTimeLine; + private EmailCampaignTimeLine emailCampaignTimeLine; @SuppressWarnings("unused") - private final ZonedDateTime recurrenceStartDate; + private ZonedDateTime recurrenceStartDate; - private final String recurrence; + private String recurrence; - private EmailCampaignData(final Long id, final String campaignName, final Integer campaignType, final Long businessRuleId, - final String paramValue, final EnumOptionData campaignStatus, final String emailSubject, final String message, - final String emailAttachmentFileFormat, final Long stretchyReportId, final String stretchyReportParamMap, + public static EmailCampaignData instance(final Long id, final String campaignName, final Integer campaignType, + final Long businessRuleId, final String paramValue, final EnumOptionData campaignStatus, final String emailSubject, + final String message, final String emailAttachmentFileFormat, final Long stretchyReportId, final String stretchyReportParamMap, final ZonedDateTime nextTriggerDate, final LocalDate lastTriggerDate, final EmailCampaignTimeLine emailCampaignTimeLine, final ZonedDateTime recurrenceStartDate, final String recurrence) { - this.id = id; - this.campaignName = campaignName; - this.campaignType = campaignType; - this.businessRuleId = businessRuleId; - this.paramValue = paramValue; - this.campaignStatus = campaignStatus; - this.emailSubject = emailSubject; - this.emailMessage = message; - this.emailAttachmentFileFormat = emailAttachmentFileFormat; - this.stretchyReportId = stretchyReportId; - this.stretchyReportParamMap = stretchyReportParamMap; - if (nextTriggerDate != null) { - this.nextTriggerDate = nextTriggerDate; - } else { - this.nextTriggerDate = null; - } - if (lastTriggerDate != null) { - this.lastTriggerDate = lastTriggerDate; - } else { - this.lastTriggerDate = null; - } - this.emailCampaignTimeLine = emailCampaignTimeLine; - this.recurrenceStartDate = recurrenceStartDate; - this.recurrence = recurrence; - } - - public static EmailCampaignData instance(final Long id, final String campaignName, final Integer campaignType, final Long runReportId, - final String paramValue, final EnumOptionData campaignStatus, final String emailSubject, final String message, - final String emailAttachmentFileFormat, final Long stretchyReportId, final String stretchyReportParamMap, - final ZonedDateTime nextTriggerDate, final LocalDate lastTriggerDate, final EmailCampaignTimeLine emailCampaignTimeLine, - final ZonedDateTime recurrenceStartDate, final String recurrence) { - return new EmailCampaignData(id, campaignName, campaignType, runReportId, paramValue, campaignStatus, emailSubject, message, - emailAttachmentFileFormat, stretchyReportId, stretchyReportParamMap, nextTriggerDate, lastTriggerDate, - emailCampaignTimeLine, recurrenceStartDate, recurrence); - } - - public Long getId() { - return id; - } - - public String getCampaignName() { - return this.campaignName; - } - - public Integer getCampaignType() { - return this.campaignType; - } - - public Long getRunReportId() { - return this.businessRuleId; - } - - public String getParamValue() { - return this.paramValue; - } - - public EnumOptionData getCampaignStatus() { - return this.campaignStatus; - } - - public String getEmailSubject() { - return this.emailSubject; - } - - public String getMessage() { - return this.emailMessage; - } - - public ZonedDateTime getNextTriggerDate() { - return this.nextTriggerDate; - } - - public LocalDate getLastTriggerDate() { - return this.lastTriggerDate; - } - - public String getRecurrence() { - return this.recurrence; - } - - public ZonedDateTime getRecurrenceStartDate() { - return this.recurrenceStartDate; + return new EmailCampaignData().setId(id).setCampaignName(campaignName).setCampaignType(campaignType) + .setBusinessRuleId(businessRuleId).setParamValue(paramValue).setCampaignStatus(campaignStatus).setEmailSubject(emailSubject) + .setEmailMessage(message).setEmailAttachmentFileFormat(emailAttachmentFileFormat).setStretchyReportId(stretchyReportId) + .setStretchyReportParamMap(stretchyReportParamMap).setNextTriggerDate(nextTriggerDate).setLastTriggerDate(lastTriggerDate) + .setEmailCampaignTimeLine(emailCampaignTimeLine).setRecurrenceStartDate(recurrenceStartDate).setRecurrence(recurrence); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignTimeLine.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignTimeLine.java index 80da3399a..3f2ed8f85 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignTimeLine.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailCampaignTimeLine.java @@ -19,23 +19,20 @@ package org.apache.fineract.infrastructure.campaigns.email.data; import java.time.LocalDate; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; +@Data +@NoArgsConstructor +@Accessors(chain = true) public class EmailCampaignTimeLine { - private final LocalDate submittedOnDate; - private final String submittedByUsername; - private final LocalDate activatedOnDate; - private final String activatedByUsername; - private final LocalDate closedOnDate; - private final String closedByUsername; + private LocalDate submittedOnDate; + private String submittedByUsername; + private LocalDate activatedOnDate; + private String activatedByUsername; + private LocalDate closedOnDate; + private String closedByUsername; - public EmailCampaignTimeLine(final LocalDate submittedOnDate, final String submittedByUsername, final LocalDate activatedOnDate, - final String activatedByUsername, final LocalDate closedOnDate, final String closedByUsername) { - this.submittedOnDate = submittedOnDate; - this.submittedByUsername = submittedByUsername; - this.activatedOnDate = activatedOnDate; - this.activatedByUsername = activatedByUsername; - this.closedOnDate = closedOnDate; - this.closedByUsername = closedByUsername; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailConfigurationData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailConfigurationData.java index c77522a36..05d6b22ae 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailConfigurationData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailConfigurationData.java @@ -18,47 +18,31 @@ */ package org.apache.fineract.infrastructure.campaigns.email.data; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + /** * Immutable data object representing an Email configuration. */ + +@Data +@NoArgsConstructor +@Accessors(chain = true) public final class EmailConfigurationData { @SuppressWarnings("unused") - private final Long id; + private Long id; - private final String name; + private String name; - private final String value; + private String value; /** * @return an instance of the EmailConfigurationData class **/ public static EmailConfigurationData instance(Long id, String name, String value) { - return new EmailConfigurationData(id, name, value); - } - - /** - * EmailConfigurationData constructor - **/ - private EmailConfigurationData(Long id, String name, String value) { - this.id = id; - this.name = name; - this.value = value; - } - - /** - * @return the id - */ - public Long getId() { - return id; - } - - public String getName() { - return name; - } - - public String getValue() { - return value; + return new EmailConfigurationData().setId(id).setName(name).setValue(value); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailData.java index 9f12955a1..00d306103 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailData.java @@ -20,146 +20,48 @@ package org.apache.fineract.infrastructure.campaigns.email.data; import java.time.LocalDate; import java.util.List; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; import org.apache.fineract.infrastructure.core.data.EnumOptionData; import org.apache.fineract.infrastructure.dataqueries.data.ReportData; /** * Immutable data object representing a SMS message. */ + +@Data +@NoArgsConstructor +@Accessors(chain = true) public final class EmailData { - private final Long id; - private final Long groupId; - private final Long clientId; - private final Long staffId; - private final EnumOptionData status; - private final String emailAddress; - private final String emailSubject; - private final String emailMessage; - private final EnumOptionData emailAttachmentFileFormat; - private final ReportData stretchyReport; - private final String stretchyReportParamMap; - private final List emailAttachmentFileFormatOptions; - private final List stretchyReportParamDateOptions; - private final String campaignName; - private final LocalDate sentDate; - private final String errorMessage; + private Long id; + private Long groupId; + private Long clientId; + private Long staffId; + private EnumOptionData status; + private String emailAddress; + private String emailSubject; + private String emailMessage; + private EnumOptionData emailAttachmentFileFormat; + private ReportData stretchyReport; + private String stretchyReportParamMap; + private List emailAttachmentFileFormatOptions; + private List stretchyReportParamDateOptions; + private String campaignName; + private LocalDate sentDate; + private String errorMessage; public static EmailData instance(final Long id, final Long groupId, final Long clientId, final Long staffId, final EnumOptionData status, final String emailAddress, final String emailSubject, final String message, final EnumOptionData emailAttachmentFileFormat, final ReportData stretchyReport, final String stretchyReportParamMap, final List emailAttachmentFileFormatOptions, final List stretchyReportParamDateOptions, final String campaignName, final LocalDate sentDate, final String errorMessage) { - return new EmailData(id, groupId, clientId, staffId, status, emailAddress, emailSubject, message, emailAttachmentFileFormat, - stretchyReport, stretchyReportParamMap, emailAttachmentFileFormatOptions, stretchyReportParamDateOptions, campaignName, - sentDate, errorMessage); - } - - private EmailData(final Long id, final Long groupId, final Long clientId, final Long staffId, final EnumOptionData status, - final String emailAddress, final String emailSubject, final String message, final EnumOptionData emailAttachmentFileFormat, - final ReportData stretchyReport, final String stretchyReportParamMap, - final List emailAttachmentFileFormatOptions, final List stretchyReportParamDateOptions, - final String campaignName, final LocalDate sentDate, final String errorMessage) { - this.id = id; - this.groupId = groupId; - this.clientId = clientId; - this.staffId = staffId; - this.status = status; - this.emailAddress = emailAddress; - this.emailSubject = emailSubject; - this.emailMessage = message; - this.emailAttachmentFileFormat = emailAttachmentFileFormat; - this.stretchyReport = stretchyReport; - this.stretchyReportParamMap = stretchyReportParamMap; - this.emailAttachmentFileFormatOptions = emailAttachmentFileFormatOptions; - this.stretchyReportParamDateOptions = stretchyReportParamDateOptions; - this.campaignName = campaignName; - this.sentDate = sentDate; - this.errorMessage = errorMessage; - } - - /** - * @return the id - */ - public Long getId() { - return id; - } - - /** - * @return the groupId - */ - public Long getGroupId() { - return groupId; - } - - /** - * @return the clientId - */ - public Long getClientId() { - return clientId; - } - - /** - * @return the staffId - */ - public Long getStaffId() { - return staffId; - } - - /** - * @return the status - */ - public EnumOptionData getStatus() { - return status; - } - - public String getErrorMessage() { - return this.errorMessage; - } - - /** - * @return the emailAddress - */ - public String getEmailAddress() { - return emailAddress; - } - - /** - * @return the message - */ - public String getMessage() { - return emailMessage; - } - - public String getCampaignName() { - return this.campaignName; - } - - public LocalDate getSentDate() { - return this.sentDate; - } - - public String getEmailSubject() { - return emailSubject; - } - - public EnumOptionData getEmailAttachmentFileFormat() { - return emailAttachmentFileFormat; - } - - public ReportData getStretchyReport() { - return stretchyReport; - } - - public String getStretchyReportParamMap() { - return stretchyReportParamMap; - } - - public List getEmailAttachmentFileFormatOptions() { - return emailAttachmentFileFormatOptions; - } - - public List getStretchyReportParamDateOptions() { - return stretchyReportParamDateOptions; + return new EmailData().setId(id).setGroupId(groupId).setClientId(clientId).setStaffId(staffId).setStatus(status) + .setEmailAddress(emailAddress).setEmailSubject(emailSubject).setEmailMessage(message) + .setEmailAttachmentFileFormat(emailAttachmentFileFormat).setStretchyReport(stretchyReport) + .setStretchyReportParamMap(stretchyReportParamMap).setEmailAttachmentFileFormatOptions(emailAttachmentFileFormatOptions) + .setStretchyReportParamDateOptions(stretchyReportParamDateOptions).setCampaignName(campaignName).setSentDate(sentDate) + .setErrorMessage(errorMessage); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailMessageWithAttachmentData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailMessageWithAttachmentData.java index a67ebf20b..091c2314a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailMessageWithAttachmentData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/EmailMessageWithAttachmentData.java @@ -20,39 +20,23 @@ package org.apache.fineract.infrastructure.campaigns.email.data; import java.io.File; import java.util.List; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; +@Data +@NoArgsConstructor +@Accessors(chain = true) public final class EmailMessageWithAttachmentData { - private final String to; - private final String text; - private final String subject; - private final List attachments; - - private EmailMessageWithAttachmentData(final String to, final String text, final String subject, final List attachments) { - this.to = to; - this.text = text; - this.subject = subject; - this.attachments = attachments; - } + private String to; + private String text; + private String subject; + private List attachments; public static EmailMessageWithAttachmentData createNew(final String to, final String text, final String subject, final List attachments) { - return new EmailMessageWithAttachmentData(to, text, subject, attachments); + return new EmailMessageWithAttachmentData().setTo(to).setText(text).setSubject(subject).setAttachments(attachments); } - public String getTo() { - return this.to; - } - - public String getText() { - return this.text; - } - - public String getSubject() { - return this.subject; - } - - public List getAttachments() { - return this.attachments; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/PreviewCampaignMessage.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/PreviewCampaignMessage.java index 06ff76455..7d4a1392e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/PreviewCampaignMessage.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/data/PreviewCampaignMessage.java @@ -18,23 +18,18 @@ */ package org.apache.fineract.infrastructure.campaigns.email.data; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +@Data +@NoArgsConstructor +@Accessors(chain = true) public class PreviewCampaignMessage { @SuppressWarnings("unused") - private final String campaignMessage; + private String campaignMessage; - private final Integer totalNumberOfMessages; + private Integer totalNumberOfMessages; - public PreviewCampaignMessage(String campaignMessage, Integer totalNumberOfMessages) { - this.campaignMessage = campaignMessage; - this.totalNumberOfMessages = totalNumberOfMessages; - } - - public String getCampaignMessage() { - return campaignMessage; - } - - public Integer getTotalNumberOfMessages() { - return totalNumberOfMessages; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailCampaign.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailCampaign.java index bd61c8638..81ca5887e 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailCampaign.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailCampaign.java @@ -31,6 +31,10 @@ import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.Accessors; import org.apache.commons.lang3.StringUtils; import org.apache.fineract.infrastructure.campaigns.email.ScheduledEmailConstants; import org.apache.fineract.infrastructure.campaigns.email.data.EmailCampaignValidator; @@ -45,6 +49,10 @@ import org.apache.fineract.useradministration.domain.AppUser; @Entity @Table(name = "scheduled_email_campaign") +@Getter +@Setter +@NoArgsConstructor +@Accessors(chain = true) public class EmailCampaign extends AbstractPersistableCustom { @Column(name = "campaign_name", nullable = false) @@ -124,36 +132,6 @@ public class EmailCampaign extends AbstractPersistableCustom { @Column(name = "previous_run_error_message", nullable = true) private String previousRunErrorMessage; - public EmailCampaign() {} - - private EmailCampaign(final String campaignName, final Integer campaignType, final Report businessRuleId, final String paramValue, - final String emailSubject, final String emailMessage, final LocalDate submittedOnDate, final AppUser submittedBy, - final Report stretchyReport, final String stretchyReportParamMap, - final ScheduledEmailAttachmentFileFormat emailAttachmentFileFormat, final String recurrence, - final LocalDateTime localDateTime) { - this.campaignName = campaignName; - this.campaignType = EmailCampaignType.fromInt(campaignType).getValue(); - this.businessRuleId = businessRuleId; - this.paramValue = paramValue; - this.status = EmailCampaignStatus.PENDING.getValue(); - this.emailSubject = emailSubject; - this.emailMessage = emailMessage; - this.emailAttachmentFileFormat = emailAttachmentFileFormat.getValue(); - this.stretchyReport = stretchyReport; - this.stretchyReportParamMap = stretchyReportParamMap; - this.submittedOnDate = submittedOnDate; - this.submittedBy = submittedBy; - this.recurrence = recurrence; - LocalDateTime recurrenceStartDate = LocalDateTime.now(DateUtils.getDateTimeZoneOfTenant()); - this.isVisible = true; - if (localDateTime != null) { - this.recurrenceStartDate = localDateTime; - } else { - this.recurrenceStartDate = recurrenceStartDate; - } - - } - public static EmailCampaign instance(final AppUser submittedBy, final Report businessRuleId, final Report stretchyReport, final JsonCommand command) { @@ -192,9 +170,11 @@ public class EmailCampaign extends AbstractPersistableCustom { recurrenceStartDate = null; } - return new EmailCampaign(campaignName, campaignType.intValue(), businessRuleId, paramValue, emailSubject, emailMessage, - submittedOnDate, submittedBy, stretchyReport, stretchyReportParamMap, emailAttachmentFileFormat, recurrence, - recurrenceStartDate); + return new EmailCampaign().setCampaignName(campaignName).setCampaignType(campaignType.intValue()).setBusinessRuleId(businessRuleId) + .setParamValue(paramValue).setStatus(EmailCampaignStatus.PENDING.getValue()).setEmailSubject(emailSubject) + .setEmailMessage(emailMessage).setSubmittedOnDate(submittedOnDate).setSubmittedBy(submittedBy) + .setStretchyReport(stretchyReport).setEmailAttachmentFileFormat(emailAttachmentFileFormat.getValue()) + .setRecurrence(recurrence).setRecurrenceStartDate(recurrenceStartDate).setStretchyReportParamMap(stretchyReportParamMap); } public Map update(JsonCommand command) { @@ -236,7 +216,7 @@ public class EmailCampaign extends AbstractPersistableCustom { final Locale locale = command.extractLocale(); final DateTimeFormatter fmt = DateTimeFormatter.ofPattern(command.dateFormat()).withLocale(locale); - if (command.isChangeInLocalDateTimeParameterNamed(EmailCampaignValidator.recurrenceStartDate, getRecurrenceStartDateTime())) { + if (command.isChangeInLocalDateTimeParameterNamed(EmailCampaignValidator.recurrenceStartDate, getRecurrenceStartDate())) { final String valueAsInput = command.stringValueOfParameterNamed(EmailCampaignValidator.recurrenceStartDate); actualChanges.put(EmailCampaignValidator.recurrenceStartDate, valueAsInput); actualChanges.put(ClientApiConstants.dateFormatParamName, dateFormatAsInput); @@ -307,9 +287,7 @@ public class EmailCampaign extends AbstractPersistableCustom { this.approvedOnDate = reactivateLocalDate; this.status = EmailCampaignStatus.ACTIVE.getValue(); this.approvedBy = currentUser; - this.closureDate = null; this.isVisible = true; - this.closedBy = null; validateReactivate(); } @@ -384,7 +362,7 @@ public class EmailCampaign extends AbstractPersistableCustom { dataValidationErrors.add(error); } - if (getActivationLocalDate() != null && getSubmittedOnDate() != null && getSubmittedOnDate().isAfter(getActivationLocalDate())) { + if (getApprovedOnDate() != null && getSubmittedOnDate() != null && getSubmittedOnDate().isAfter(getApprovedOnDate())) { final String defaultUserMessage = "submitted date cannot be after the activation date"; final ApiParameterError error = ApiParameterError.parameterError("error.msg.campaign.submittedOnDate.after.activation.date", @@ -393,11 +371,11 @@ public class EmailCampaign extends AbstractPersistableCustom { dataValidationErrors.add(error); } - if (getActivationLocalDate() != null && isDateInTheFuture(getActivationLocalDate())) { + if (getApprovedOnDate() != null && isDateInTheFuture(getApprovedOnDate())) { final String defaultUserMessage = "Activation date cannot be in the future."; final ApiParameterError error = ApiParameterError.parameterError("error.msg.campaign.activationDate.in.the.future", - defaultUserMessage, EmailCampaignValidator.activationDateParamName, getActivationLocalDate()); + defaultUserMessage, EmailCampaignValidator.activationDateParamName, getApprovedOnDate()); dataValidationErrors.add(error); } @@ -405,15 +383,15 @@ public class EmailCampaign extends AbstractPersistableCustom { } private void validateReactivationDate(final List dataValidationErrors) { - if (getActivationLocalDate() != null && isDateInTheFuture(getActivationLocalDate())) { + if (getApprovedOnDate() != null && isDateInTheFuture(getApprovedOnDate())) { final String defaultUserMessage = "Activation date cannot be in the future."; final ApiParameterError error = ApiParameterError.parameterError("error.msg.campaign.activationDate.in.the.future", - defaultUserMessage, EmailCampaignValidator.activationDateParamName, getActivationLocalDate()); + defaultUserMessage, EmailCampaignValidator.activationDateParamName, getApprovedOnDate()); dataValidationErrors.add(error); } - if (getActivationLocalDate() != null && getSubmittedOnDate() != null && getSubmittedOnDate().isAfter(getActivationLocalDate())) { + if (getApprovedOnDate() != null && getSubmittedOnDate() != null && getSubmittedOnDate().isAfter(getApprovedOnDate())) { final String defaultUserMessage = "submitted date cannot be after the activation date"; final ApiParameterError error = ApiParameterError.parameterError("error.msg.campaign.submittedOnDate.after.activation.date", @@ -442,100 +420,8 @@ public class EmailCampaign extends AbstractPersistableCustom { } } - public LocalDate getSubmittedOnDate() { - return this.submittedOnDate; - - } - - public LocalDate getClosureDate() { - return this.closureDate; - } - - public LocalDate getActivationLocalDate() { - return this.approvedOnDate; - } - private boolean isDateInTheFuture(final LocalDate localDate) { return localDate.isAfter(DateUtils.getBusinessLocalDate()); } - public Report getBusinessRuleId() { - return this.businessRuleId; - } - - public String getCampaignName() { - return this.campaignName; - } - - public String getEmailSubject() { - return this.emailSubject; - } - - public String getEmailMessage() { - return this.emailMessage; - } - - public String getParamValue() { - return this.paramValue; - } - - public String getRecurrence() { - return this.recurrence; - } - - public LocalDateTime getRecurrenceStartDateTime() { - return this.recurrenceStartDate; - } - - public void setLastTriggerDate(LocalDateTime lastTriggerDate) { - this.lastTriggerDate = lastTriggerDate; - } - - public void setNextTriggerDate(LocalDateTime nextTriggerDate) { - this.nextTriggerDate = nextTriggerDate; - } - - public LocalDateTime getNextTriggerDate() { - return this.nextTriggerDate; - } - - public LocalDateTime getNextTriggerDateInDate() { - return this.nextTriggerDate; - } - - public LocalDateTime getLastTriggerDate() { - return this.lastTriggerDate; - } - - public void updateIsVisible(boolean isVisible) { - this.isVisible = isVisible; - } - - public void updateBusinessRuleId(final Report report) { - this.businessRuleId = report; - } - - public String getEmailAttachmentFileFormat() { - return this.emailAttachmentFileFormat; - } - - public Report getStretchyReport() { - return this.stretchyReport; - } - - public String getStretchyReportParamMap() { - return this.stretchyReportParamMap; - } - - public void setStretchyReportParamMap(String stretchyReportParamMap) { - this.stretchyReportParamMap = stretchyReportParamMap; - } - - public AppUser getApprovedBy() { - return this.approvedBy; - } - - public AppUser getClosedBy() { - return this.closedBy; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java index 8153b2371..329ab3920 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailConfiguration.java @@ -21,10 +21,18 @@ package org.apache.fineract.infrastructure.campaigns.email.domain; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.Accessors; import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom; @Entity @Table(name = "scheduled_email_configuration") +@Getter +@Setter +@NoArgsConstructor +@Accessors(chain = true) public class EmailConfiguration extends AbstractPersistableCustom { @Column(name = "name", nullable = false) @@ -32,29 +40,4 @@ public class EmailConfiguration extends AbstractPersistableCustom { @Column(name = "value", nullable = false) private String value; - - /** - * EmailConfiguration constructor - **/ - protected EmailConfiguration() {} - - /** - * EmailConfiguration constructor - **/ - public EmailConfiguration(String name, String value) { - this.name = name; - this.value = value; - } - - public void setValue(String value) { - this.value = value; - } - - public String getName() { - return this.name; - } - - public String getValue() { - return this.value; - } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java index cc732c4a7..76aa732ff 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/domain/EmailMessage.java @@ -26,17 +26,24 @@ import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.experimental.Accessors; import org.apache.commons.lang3.StringUtils; import org.apache.fineract.infrastructure.campaigns.email.EmailApiConstants; import org.apache.fineract.infrastructure.core.api.JsonCommand; import org.apache.fineract.infrastructure.core.domain.AbstractPersistableCustom; -import org.apache.fineract.infrastructure.core.service.DateUtils; import org.apache.fineract.organisation.staff.domain.Staff; import org.apache.fineract.portfolio.client.domain.Client; import org.apache.fineract.portfolio.group.domain.Group; @Entity @Table(name = "scheduled_email_messages_outbound") +@Getter +@Setter +@NoArgsConstructor +@Accessors(chain = true) public class EmailMessage extends AbstractPersistableCustom { @ManyToOne @@ -78,33 +85,18 @@ public class EmailMessage extends AbstractPersistableCustom { public static EmailMessage pendingEmail(final Group group, final Client client, final Staff staff, final EmailCampaign emailCampaign, final String emailSubject, final String message, final String emailAddress, final String campaignName) { - return new EmailMessage(group, client, staff, emailCampaign, EmailMessageStatusType.PENDING, emailSubject, message, emailAddress, - campaignName); + return new EmailMessage().setGroup(group).setClient(client).setStaff(staff).setEmailCampaign(emailCampaign) + .setStatusType(emailCampaign.getStatus()).setEmailSubject(emailSubject).setMessage(message).setEmailAddress(emailAddress) + .setCampaignName(campaignName); } public static EmailMessage instance(final Group group, final Client client, final Staff staff, final EmailCampaign emailCampaign, final EmailMessageStatusType statusType, final String emailSubject, final String message, final String sourceAddress, final String emailAddress, final String campaignName) { - return new EmailMessage(group, client, staff, emailCampaign, statusType, emailSubject, message, emailAddress, campaignName); - } + return new EmailMessage().setGroup(group).setClient(client).setStaff(staff).setEmailCampaign(emailCampaign) + .setEmailSubject(emailSubject).setMessage(message).setEmailAddress(emailAddress).setCampaignName(campaignName) + .setStatusType(statusType.getValue()); - protected EmailMessage() { - // - } - - private EmailMessage(final Group group, final Client client, final Staff staff, final EmailCampaign emailCampaign, - final EmailMessageStatusType statusType, final String emailSubject, final String message, final String emailAddress, - final String campaignName) { - this.group = group; - this.client = client; - this.staff = staff; - this.emailCampaign = emailCampaign; - this.statusType = statusType.getValue(); - this.emailAddress = emailAddress; - this.emailSubject = emailSubject; - this.message = message; - this.campaignName = campaignName; - this.submittedOnDate = DateUtils.getBusinessLocalDate(); } public Map update(final JsonCommand command) { @@ -120,54 +112,6 @@ public class EmailMessage extends AbstractPersistableCustom { return actualChanges; } - public Group getGroup() { - return group; - } - - public Client getClient() { - return client; - } - - public Staff getStaff() { - return staff; - } - - public Integer getStatusType() { - return statusType; - } - - public String getEmailAddress() { - return this.emailAddress; - } - - public String getEmailSubject() { - return emailSubject; - } - - public String getMessage() { - return message; - } - - public void setStatusType(final Integer statusType) { - this.statusType = statusType; - } - - public String getCampaignName() { - return this.campaignName; - } - - public LocalDate getSubmittedOnDate() { - return this.submittedOnDate; - } - - public EmailCampaign getEmailCampaign() { - return this.emailCampaign; - } - - public void updateErrorMessage(final String errorMessage) { - this.errorMessage = errorMessage; - } - public boolean isPending() { return EmailMessageStatusType.fromInt(this.statusType).isPending(); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java index 95976a2ed..0ef6b2bd0 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignReadPlatformServiceImpl.java @@ -150,8 +150,9 @@ public class EmailCampaignReadPlatformServiceImpl implements EmailCampaignReadPl final String activatedByUsername = rs.getString("activatedByUsername"); final String recurrence = rs.getString("recurrence"); final ZonedDateTime recurrenceStartDate = JdbcSupport.getDateTime(rs, "recurrenceStartDate"); - final EmailCampaignTimeLine emailCampaignTimeLine = new EmailCampaignTimeLine(submittedOnDate, submittedByUsername, - activatedOnDate, activatedByUsername, closedOnDate, closedByUsername); + final EmailCampaignTimeLine emailCampaignTimeLine = new EmailCampaignTimeLine().setSubmittedOnDate(submittedOnDate) + .setActivatedByUsername(submittedByUsername).setActivatedOnDate(activatedOnDate) + .setActivatedByUsername(activatedByUsername).setClosedOnDate(closedOnDate).setClosedByUsername(closedByUsername); return EmailCampaignData.instance(id, campaignName, campaignType, businessRuleId, paramValue, status, emailSubject, emailMessage, emailAttachmentFileFormatString, reportId, stretchyReportParamMap, nextTriggerDate, lastTriggerDate, diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignWritePlatformCommandHandlerImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignWritePlatformCommandHandlerImpl.java index 81be30c16..e27421300 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignWritePlatformCommandHandlerImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignWritePlatformCommandHandlerImpl.java @@ -151,7 +151,7 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai if (changes.containsKey(EmailCampaignValidator.businessRuleId)) { final Long newValue = command.longValueOfParameterNamed(EmailCampaignValidator.businessRuleId); final Report reportId = this.reportRepository.findById(newValue).orElseThrow(() -> new ReportNotFoundException(newValue)); - emailCampaign.updateBusinessRuleId(reportId); + emailCampaign.setBusinessRuleId(reportId); } @@ -294,11 +294,11 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai * date us next trigger date when activating */ LocalDateTime nextTriggerDateWithTime; - if (emailCampaign.getRecurrenceStartDateTime().isBefore(tenantDateTime())) { + if (emailCampaign.getRecurrenceStartDate().isBefore(tenantDateTime())) { nextTriggerDateWithTime = CalendarUtils.getNextRecurringDate(emailCampaign.getRecurrence(), - emailCampaign.getRecurrenceStartDateTime(), DateUtils.getLocalDateTimeOfTenant()); + emailCampaign.getRecurrenceStartDate(), DateUtils.getLocalDateTimeOfTenant()); } else { - nextTriggerDateWithTime = emailCampaign.getRecurrenceStartDateTime(); + nextTriggerDateWithTime = emailCampaign.getRecurrenceStartDate(); } emailCampaign.setNextTriggerDate(nextTriggerDateWithTime); @@ -403,7 +403,8 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai String textMessage = this.compileEmailTemplate(textMessageTemplate, "EmailCampaign", entry); if (!textMessage.isEmpty()) { final Integer totalMessage = runReportObject.size(); - campaignMessage = new PreviewCampaignMessage(textMessage, totalMessage); + campaignMessage = new PreviewCampaignMessage().setCampaignMessage(textMessage) + .setTotalNumberOfMessages(totalMessage); break; } } @@ -438,14 +439,14 @@ public class EmailCampaignWritePlatformCommandHandlerImpl implements EmailCampai * next trigger date when activating */ LocalDateTime nextTriggerDate = null; - if (emailCampaign.getRecurrenceStartDateTime().isBefore(tenantDateTime())) { - nextTriggerDate = CalendarUtils.getNextRecurringDate(emailCampaign.getRecurrence(), - emailCampaign.getRecurrenceStartDateTime(), DateUtils.getLocalDateTimeOfTenant()); + if (emailCampaign.getRecurrenceStartDate().isBefore(tenantDateTime())) { + nextTriggerDate = CalendarUtils.getNextRecurringDate(emailCampaign.getRecurrence(), emailCampaign.getRecurrenceStartDate(), + DateUtils.getLocalDateTimeOfTenant()); } else { - nextTriggerDate = emailCampaign.getRecurrenceStartDateTime(); + nextTriggerDate = emailCampaign.getRecurrenceStartDate(); } // to get time of tenant - final LocalDateTime getTime = emailCampaign.getRecurrenceStartDateTime(); + final LocalDateTime getTime = emailCampaign.getRecurrenceStartDate(); final String dateString = nextTriggerDate.toString() + " " + getTime.getHour() + ":" + getTime.getMinute() + ":" + getTime.getSecond(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java index 1fba60460..2c274607d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationReadPlatformServiceImpl.java @@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.campaigns.email.service; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Collection; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.campaigns.email.data.EmailConfigurationData; import org.apache.fineract.infrastructure.campaigns.email.exception.EmailConfigurationNotFoundException; import org.apache.fineract.infrastructure.core.domain.JdbcSupport; @@ -31,6 +32,7 @@ import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Service; @Service +@RequiredArgsConstructor public class EmailConfigurationReadPlatformServiceImpl implements EmailConfigurationReadPlatformService { private final JdbcTemplate jdbcTemplate; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationWritePlatformServiceImpl.java index 7720d8b7d..21f7a6cf5 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailConfigurationWritePlatformServiceImpl.java @@ -21,6 +21,7 @@ package org.apache.fineract.infrastructure.campaigns.email.service; import java.util.Collection; import java.util.HashMap; import java.util.Map; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.campaigns.email.data.EmailConfigurationValidator; import org.apache.fineract.infrastructure.campaigns.email.domain.EmailConfiguration; import org.apache.fineract.infrastructure.campaigns.email.domain.EmailConfigurationRepository; @@ -30,24 +31,16 @@ import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; import org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuilder; import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext; import org.apache.fineract.useradministration.domain.AppUser; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service +@RequiredArgsConstructor public class EmailConfigurationWritePlatformServiceImpl implements EmailConfigurationWritePlatformService { private final PlatformSecurityContext context; private final EmailConfigurationRepository repository; private final EmailConfigurationValidator emailConfigurationValidator; - @Autowired - public EmailConfigurationWritePlatformServiceImpl(final PlatformSecurityContext context, final EmailConfigurationRepository repository, - final EmailConfigurationValidator emailConfigurationValidator) { - this.context = context; - this.repository = repository; - this.emailConfigurationValidator = emailConfigurationValidator; - } - @Override public CommandProcessingResult update(final JsonCommand command) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailMessageJobEmailServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailMessageJobEmailServiceImpl.java index 363e89b4f..c1fbd1a68 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailMessageJobEmailServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailMessageJobEmailServiceImpl.java @@ -23,27 +23,23 @@ import java.util.List; import java.util.Properties; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.campaigns.email.data.EmailMessageWithAttachmentData; import org.apache.fineract.infrastructure.configuration.data.SMTPCredentialsData; import org.apache.fineract.infrastructure.configuration.service.ExternalServicesPropertiesReadPlatformService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; @Service +@RequiredArgsConstructor public final class EmailMessageJobEmailServiceImpl implements EmailMessageJobEmailService { private static final Logger LOG = LoggerFactory.getLogger(EmailMessageJobEmailServiceImpl.class); private final ExternalServicesPropertiesReadPlatformService externalServicesReadPlatformService; - @Autowired - public EmailMessageJobEmailServiceImpl(ExternalServicesPropertiesReadPlatformService externalServicesReadPlatformService) { - this.externalServicesReadPlatformService = externalServicesReadPlatformService; - } - @Override public void sendEmailWithAttachment(EmailMessageWithAttachmentData emailMessageWithAttachmentData) { final SMTPCredentialsData smtpCredentialsData = this.externalServicesReadPlatformService.getSMTPCredentials(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java index f8c51c93a..f17fdf8ce 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailReadPlatformServiceImpl.java @@ -23,6 +23,7 @@ import java.sql.SQLException; import java.time.LocalDate; import java.util.Collection; import java.util.List; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.campaigns.email.data.EmailData; import org.apache.fineract.infrastructure.campaigns.email.domain.EmailMessageEnumerations; import org.apache.fineract.infrastructure.campaigns.email.domain.EmailMessageStatusType; @@ -34,13 +35,13 @@ import org.apache.fineract.infrastructure.core.service.Page; import org.apache.fineract.infrastructure.core.service.PaginationHelper; import org.apache.fineract.infrastructure.core.service.SearchParameters; import org.apache.fineract.infrastructure.core.service.database.DatabaseSpecificSQLGenerator; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Service; @Service +@RequiredArgsConstructor public class EmailReadPlatformServiceImpl implements EmailReadPlatformService { private final JdbcTemplate jdbcTemplate; @@ -48,14 +49,6 @@ public class EmailReadPlatformServiceImpl implements EmailReadPlatformService { private final EmailMapper emailRowMapper = new EmailMapper(); private final PaginationHelper paginationHelper; - @Autowired - public EmailReadPlatformServiceImpl(final JdbcTemplate jdbcTemplate, DatabaseSpecificSQLGenerator sqlGenerator, - PaginationHelper paginationHelper) { - this.jdbcTemplate = jdbcTemplate; - this.sqlGenerator = sqlGenerator; - this.paginationHelper = paginationHelper; - } - private static final class EmailMapper implements RowMapper { final String schema; diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailWritePlatformServiceJpaRepositoryImpl.java index 0c412d718..181f36a30 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailWritePlatformServiceJpaRepositoryImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailWritePlatformServiceJpaRepositoryImpl.java @@ -19,6 +19,7 @@ package org.apache.fineract.infrastructure.campaigns.email.service; import java.util.Map; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.campaigns.email.data.EmailDataValidator; import org.apache.fineract.infrastructure.campaigns.email.domain.EmailMessage; import org.apache.fineract.infrastructure.campaigns.email.domain.EmailMessageAssembler; @@ -29,7 +30,6 @@ import org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuild import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.dao.NonTransientDataAccessException; import org.springframework.orm.jpa.JpaSystemException; @@ -37,6 +37,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service +@RequiredArgsConstructor public class EmailWritePlatformServiceJpaRepositoryImpl implements EmailWritePlatformService { private static final Logger LOG = LoggerFactory.getLogger(EmailWritePlatformServiceJpaRepositoryImpl.class); @@ -45,14 +46,6 @@ public class EmailWritePlatformServiceJpaRepositoryImpl implements EmailWritePla private final EmailMessageRepository repository; private final EmailDataValidator validator; - @Autowired - public EmailWritePlatformServiceJpaRepositoryImpl(final EmailMessageAssembler assembler, final EmailMessageRepository repository, - final EmailDataValidator validator) { - this.assembler = assembler; - this.repository = repository; - this.validator = validator; - } - @Transactional @Override public CommandProcessingResult create(final JsonCommand command) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/executeemail/ExecuteEmailTasklet.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/executeemail/ExecuteEmailTasklet.java index be0087f07..1b5b4e92a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/executeemail/ExecuteEmailTasklet.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/executeemail/ExecuteEmailTasklet.java @@ -150,7 +150,7 @@ public class ExecuteEmailTasklet implements Tasklet { emailMessage.setStatusType(EmailMessageStatusType.SENT.getValue()); emailMessageRepository.save(emailMessage); } catch (Exception e) { - emailMessage.updateErrorMessage(e.getMessage()); + emailMessage.setErrorMessage(e.getMessage()); emailMessage.setStatusType(EmailMessageStatusType.FAILED.getValue()); emailMessageRepository.save(emailMessage); } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/updateemailoutboundwithcampaignmessage/UpdateEmailOutboundWithCampaignMessageTasklet.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/updateemailoutboundwithcampaignmessage/UpdateEmailOutboundWithCampaignMessageTasklet.java index d5df4199e..8d81b847b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/updateemailoutboundwithcampaignmessage/UpdateEmailOutboundWithCampaignMessageTasklet.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/jobs/updateemailoutboundwithcampaignmessage/UpdateEmailOutboundWithCampaignMessageTasklet.java @@ -75,7 +75,7 @@ public class UpdateEmailOutboundWithCampaignMessageTasklet implements Tasklet { log.debug("tenant time {} trigger time {}", tenantDateNow, nextTriggerDate); if (nextTriggerDate.isBefore(tenantDateNow)) { insertDirectCampaignIntoEmailOutboundTable(emailCampaignData.getParamValue(), emailCampaignData.getEmailSubject(), - emailCampaignData.getMessage(), emailCampaignData.getCampaignName(), emailCampaignData.getId()); + emailCampaignData.getEmailMessage(), emailCampaignData.getCampaignName(), emailCampaignData.getId()); updateTriggerDates(emailCampaignData.getId()); } } diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java index eafb5fa8d..c512c206b 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/data/ReportData.java @@ -22,7 +22,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -public final class ReportData { +public class ReportData { @SuppressWarnings("unused") private final Long id;