use of com.pratilipi.data.type.Email in project pratilipi by Pratilipi.
the class EmailDataUtil method _sendConsolidatedEmail.
private static void _sendConsolidatedEmail(Long userId, List<Email> emailList) throws UnexpectedServerException {
DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
UserData user = UserDataUtil.createUserData(dataAccessor.getUser(userId));
// Dropping mails if user doesn't have name or language
if (user.getDisplayName() == null || user.getLanguage() == null) {
for (Email email : emailList) {
email.setState(EmailState.DROPPED);
email.setLastUpdated(new Date());
}
emailList = dataAccessor.createOrUpdateEmailList(emailList);
return;
}
String consolidatedContent = new String();
for (Email email : emailList) {
if (email.getState() != EmailState.IN_PROGRESS)
continue;
if (!_isToday(email.getScheduledDate()) && email.getScheduledDate().before(new Date())) {
email.setState(EmailState.DROPPED);
email.setLastUpdated(new Date());
continue;
}
consolidatedContent = consolidatedContent + _getContentSnippet(email, user.getLanguage());
email.setState(EmailState.SENT);
email.setLastUpdated(new Date());
}
if (consolidatedContent.isEmpty()) {
// No IN_PROGRESS emails
dataAccessor.createOrUpdateEmailList(emailList);
return;
}
String content = EmailTemplateUtil.getEmailBody(consolidatedContent, user.getLanguage());
Pattern senderNamePattern = Pattern.compile("<!-- SENDER_NAME:(.+?) -->");
Pattern senderEmailPattern = Pattern.compile("<!-- SENDER_EMAIL:(.+?) -->");
String senderName = null;
String senderEmail = null;
String subject = dataAccessor.getI18nStrings(I18nGroup.EMAIL, user.getLanguage()).get("email_consolidated_subject");
Matcher m = null;
if ((m = senderNamePattern.matcher(content)).find())
senderName = m.group(1).trim();
if ((m = senderEmailPattern.matcher(content)).find())
senderEmail = m.group(1).trim();
EmailUtil.sendMail(senderName, senderEmail, user.getDisplayName(), user.getEmail(), subject, content);
dataAccessor.createOrUpdateEmailList(emailList);
_updateUserEntity(userId);
}
use of com.pratilipi.data.type.Email in project pratilipi by Pratilipi.
the class AuditLogProcessApi method _createUserPratilipiReviewEmail.
private Email _createUserPratilipiReviewEmail(UserPratilipi userPratilipi, Author author) {
DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
if (author.getUserId() == null)
return null;
Email email = dataAccessor.getEmail(author.getUserId(), EmailType.USER_PRATILIPI_REVIEW, userPratilipi.getId());
if (email == null) {
email = dataAccessor.newEmail(author.getUserId(), EmailType.USER_PRATILIPI_REVIEW, userPratilipi.getId());
} else if (email.getState() == EmailState.DEFERRED) {
email.setState(EmailState.PENDING);
email.setLastUpdated(new Date());
} else {
// Do nothing
return null;
}
return email;
}
use of com.pratilipi.data.type.Email in project pratilipi by Pratilipi.
the class AuditLogProcessApi method _createUserAuthorFollowingEmail.
private Email _createUserAuthorFollowingEmail(UserAuthor userAuthor, Author author) {
DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
if (// Followed
author.getUserId() == null)
return null;
Email email = dataAccessor.getEmail(author.getUserId(), EmailType.AUTHOR_FOLLOW, userAuthor.getId());
if (email == null) {
email = dataAccessor.newEmail(author.getUserId(), EmailType.AUTHOR_FOLLOW, userAuthor.getId());
} else if (email.getState() == EmailState.DEFERRED) {
email.setState(EmailState.PENDING);
email.setLastUpdated(new Date());
} else {
// Do nothing
return null;
}
return email;
}
use of com.pratilipi.data.type.Email in project pratilipi by Pratilipi.
the class AuditLogProcessApi method _createCommentAddedReviewerEmail.
private Email _createCommentAddedReviewerEmail(UserPratilipi userPratilipi, Comment comment) {
DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
Email email = dataAccessor.getEmail(userPratilipi.getUserId(), EmailType.COMMENT_REVIEW_REVIEWER, comment.getId());
if (email == null) {
email = dataAccessor.newEmail(userPratilipi.getUserId(), EmailType.COMMENT_REVIEW_REVIEWER, comment.getId());
} else if (email.getState() == EmailState.DEFERRED) {
email.setState(EmailState.PENDING);
email.setLastUpdated(new Date());
} else {
// Do nothing
return null;
}
return email;
}
use of com.pratilipi.data.type.Email in project pratilipi by Pratilipi.
the class AuditLogProcessApi method _createPratilipiPublishedEmail.
private Email _createPratilipiPublishedEmail(Pratilipi pratilipi, Author author) {
DataAccessor dataAccessor = DataAccessorFactory.getDataAccessor();
if (author.getUserId() == null)
return null;
Email email = dataAccessor.getEmail(author.getUserId(), EmailType.PRATILIPI_PUBLISHED_AUTHOR, pratilipi.getId());
if (email == null) {
email = dataAccessor.newEmail(author.getUserId(), EmailType.PRATILIPI_PUBLISHED_AUTHOR, pratilipi.getId());
} else if (email.getState() == EmailState.DEFERRED) {
email.setState(EmailState.PENDING);
email.setLastUpdated(new Date());
} else {
// Do nothing
return null;
}
return email;
}
Aggregations