package org.openlmis.email.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.activation.DataSource;
import javax.mail.util.ByteArrayDataSource;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class EmailAttachment {
private static final Logger logger = LoggerFactory.getLogger(EmailAttachment.class);
private Long id;
private String attachmentPath;
private String attachmentName;
private String attachmentFileType;
private DataSource fileDataSource;
protected Date createdDate;
public DataSource getFileDataSource() {
if(fileDataSource != null){
return fileDataSource;
}
InputStream attachment = null;
try {
attachment = new FileInputStream(new File(attachmentPath));
DataSource attachmentDataSource = new ByteArrayDataSource(attachment, attachmentFileType);
return attachmentDataSource;
} catch (Exception e) {
logger.error("Error send attachment file " + e.getMessage());
} finally {
if (attachment != null) {
try {
attachment.close();
} catch (IOException e) {
logger.error("Error close file " + e.getMessage());
}
}
}
return null;
}
}