refactor: add lombok to emailcampaigns module
This commit is contained in:
committed by
Arnold Gálovics
parent
ba1d0ce66c
commit
9b039ff136
+14
-37
@@ -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<String, Object> reportParamName;
|
||||
|
||||
public EmailBusinessRulesData(final Long reportId, final String reportName, final String reportType,
|
||||
final Map<String, Object> 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<String, Object> reportParamName;
|
||||
|
||||
public static EmailBusinessRulesData instance(final Long reportId, final String reportName, final String reportType,
|
||||
final Map<String, Object> reportParamName, final String reportSubType, final String reportDescription) {
|
||||
return new EmailBusinessRulesData(reportId, reportName, reportType, reportParamName, reportSubType, reportDescription);
|
||||
}
|
||||
|
||||
public Map<String, Object> 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
|
||||
|
||||
+29
-100
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
+12
-15
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+12
-28
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+29
-127
@@ -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<EnumOptionData> emailAttachmentFileFormatOptions;
|
||||
private final List<EnumOptionData> 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<EnumOptionData> emailAttachmentFileFormatOptions;
|
||||
private List<EnumOptionData> 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<EnumOptionData> emailAttachmentFileFormatOptions, final List<EnumOptionData> 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<EnumOptionData> emailAttachmentFileFormatOptions, final List<EnumOptionData> 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<EnumOptionData> getEmailAttachmentFileFormatOptions() {
|
||||
return emailAttachmentFileFormatOptions;
|
||||
}
|
||||
|
||||
public List<EnumOptionData> 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);
|
||||
}
|
||||
}
|
||||
|
||||
+11
-27
@@ -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<File> attachments;
|
||||
|
||||
private EmailMessageWithAttachmentData(final String to, final String text, final String subject, final List<File> attachments) {
|
||||
this.to = to;
|
||||
this.text = text;
|
||||
this.subject = subject;
|
||||
this.attachments = attachments;
|
||||
}
|
||||
private String to;
|
||||
private String text;
|
||||
private String subject;
|
||||
private List<File> attachments;
|
||||
|
||||
public static EmailMessageWithAttachmentData createNew(final String to, final String text, final String subject,
|
||||
final List<File> 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<File> getAttachments() {
|
||||
return this.attachments;
|
||||
}
|
||||
}
|
||||
|
||||
+9
-14
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+20
-134
@@ -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<String, Object> 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<ApiParameterError> 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;
|
||||
}
|
||||
}
|
||||
|
||||
+8
-25
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+14
-70
@@ -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<String, Object> 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();
|
||||
}
|
||||
|
||||
+3
-2
@@ -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,
|
||||
|
||||
+11
-10
@@ -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();
|
||||
|
||||
+2
@@ -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;
|
||||
|
||||
+2
-9
@@ -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) {
|
||||
|
||||
|
||||
+2
-6
@@ -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();
|
||||
|
||||
+2
-9
@@ -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<EmailData> {
|
||||
|
||||
final String schema;
|
||||
|
||||
+2
-9
@@ -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) {
|
||||
|
||||
+1
-1
@@ -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);
|
||||
}
|
||||
|
||||
+1
-1
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user