Done ticket
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
package net.gepafin.tendermanagement.dao;
|
||||
|
||||
import net.gepafin.tendermanagement.entities.EmailLogEntity;
|
||||
import net.gepafin.tendermanagement.entities.EmailTrackingEntity;
|
||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||
import net.gepafin.tendermanagement.enums.EmailTrackingEntityTypeEnum;
|
||||
import net.gepafin.tendermanagement.enums.RecipientTypeEnum;
|
||||
import net.gepafin.tendermanagement.enums.StatusTypeEnum;
|
||||
import net.gepafin.tendermanagement.model.request.EmailLogRequest;
|
||||
import net.gepafin.tendermanagement.repositories.EmailLogRepository;
|
||||
import net.gepafin.tendermanagement.repositories.EmailTrackingRepository;
|
||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||
import net.gepafin.tendermanagement.util.FieldValidator;
|
||||
import org.checkerframework.checker.units.qual.A;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Component
|
||||
public class EmailLogDao {
|
||||
|
||||
@Autowired
|
||||
private EmailLogRepository emailLogRepository;
|
||||
|
||||
@Autowired
|
||||
private EmailTrackingRepository emailTrackingRepository;
|
||||
|
||||
|
||||
public EmailLogEntity createEmailLog(EmailLogRequest emailLogRequest){
|
||||
EmailLogEntity emailLogEntity=new EmailLogEntity();
|
||||
emailLogEntity.setEmailType(emailLogRequest.getEmailType());
|
||||
emailLogEntity.setRecipientType(emailLogRequest.getRecipientType().getValue());
|
||||
emailLogEntity.setRecipientId(emailLogRequest.getRecipientId());
|
||||
emailLogEntity.setEmailSubject(emailLogRequest.getEmailSubject());
|
||||
emailLogEntity.setEmailBody(emailLogRequest.getEmailBody());
|
||||
emailLogEntity.setSendStatus(emailLogRequest.getSendStatus());
|
||||
emailLogEntity.setSendDateTime(DateTimeUtil.DateServerToUTC(LocalDateTime.now())); // Set to now if null
|
||||
emailLogEntity.setErrorMessage(emailLogRequest.getErrorMessage());
|
||||
emailLogEntity=saveEmailLogEntity(emailLogEntity);
|
||||
if(emailLogRequest.getEntityId()!=null && emailLogRequest.getEntityId()>0){
|
||||
EmailTrackingEntity emailTrackingEntity=createEmailTrackingEntity(emailLogEntity,emailLogRequest);
|
||||
if(emailTrackingEntity==null){
|
||||
emailLogEntity.setErrorMessage("Failed while creating email tracking entity");
|
||||
emailLogEntity.setSendStatus(StatusTypeEnum.FAILED.getValue());
|
||||
emailLogEntity=saveEmailLogEntity(emailLogEntity);
|
||||
}
|
||||
}
|
||||
return emailLogEntity;
|
||||
}
|
||||
public EmailLogEntity saveEmailLogEntity(EmailLogEntity emailLogEntity){
|
||||
return emailLogRepository.save(emailLogEntity);
|
||||
}
|
||||
public EmailTrackingEntity createEmailTrackingEntity(EmailLogEntity emailLogEntity,EmailLogRequest emailLogRequest){
|
||||
EmailTrackingEntity emailTrackingEntity=new EmailTrackingEntity();
|
||||
emailTrackingEntity.setEmailLog(emailLogEntity);
|
||||
emailTrackingEntity.setEntityId(emailLogRequest.getEntityId());
|
||||
emailTrackingEntity.setEntityType(emailLogRequest.getEntitytype().getValue());
|
||||
emailTrackingEntity.setUser(emailLogRequest.getUser());
|
||||
emailTrackingRepository.save(emailTrackingEntity);
|
||||
return emailTrackingEntity;
|
||||
}
|
||||
public EmailLogRequest createEmailLogRequest(String emailType, RecipientTypeEnum recipientType, Long recipientId,
|
||||
String emailSubject, String emailBody, String sendStatus,
|
||||
String errorMessage, Long entityId, EmailTrackingEntityTypeEnum entityType, UserEntity user) {
|
||||
EmailLogRequest emailLogRequest = new EmailLogRequest();
|
||||
emailLogRequest.setEmailType(emailType);
|
||||
emailLogRequest.setRecipientType(recipientType);
|
||||
emailLogRequest.setRecipientId(recipientId);
|
||||
emailLogRequest.setEmailSubject(emailSubject);
|
||||
emailLogRequest.setEmailBody(emailBody);
|
||||
emailLogRequest.setSendStatus(sendStatus);
|
||||
emailLogRequest.setErrorMessage(errorMessage);
|
||||
emailLogRequest.setEntityId(entityId);
|
||||
emailLogRequest.setEntitytype(entityType);
|
||||
emailLogRequest.setUser(user);
|
||||
return emailLogRequest;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user