This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit 3a41ce6508417c7fd24d256acf3b9529b9046ae2 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Fri Nov 17 10:55:50 2017 +0100 Ajout de la sessionId dans le mail de feedback + plus de log dans l'envoie et la reception des emails --- .../org/chorem/pollen/rest/api/v1/FeedbackApi.java | 4 +++- .../pollen/services/service/FeedbackService.java | 4 ++-- .../pollen/services/service/mail/EmailService.java | 21 ++++++++++++++++----- .../pollen/services/service/mail/FeedbackEmail.java | 13 ++++++++++++- .../services/service/mail/MailBoxService.java | 13 +++++++++++-- .../src/main/resources/email/FeedbackEmail.mustache | 1 + .../main/resources/email/FeedbackEmail_fr.mustache | 1 + 7 files changed, 46 insertions(+), 11 deletions(-) diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/FeedbackApi.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/FeedbackApi.java index 9c851e52..e8c0cd58 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/FeedbackApi.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/FeedbackApi.java @@ -24,6 +24,7 @@ package org.chorem.pollen.rest.api.v1; import org.chorem.pollen.services.bean.FeedbackBean; import org.chorem.pollen.services.service.FeedbackService; +import javax.servlet.http.HttpServletRequest; import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; @@ -43,8 +44,9 @@ public class FeedbackApi { @Path("/feedback") @POST public boolean addFeedBack(@Context FeedbackService feedbackService, + @Context HttpServletRequest servletRequest, FeedbackBean feedbackBean) { - return feedbackService.addFeedback(feedbackBean); + return feedbackService.addFeedback(feedbackBean, servletRequest.getRequestedSessionId()); } } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/FeedbackService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/FeedbackService.java index 9225bd2c..81116829 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/FeedbackService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/FeedbackService.java @@ -35,7 +35,7 @@ import java.util.Locale; */ public class FeedbackService extends PollenServiceSupport { - public boolean addFeedback(FeedbackBean feedbackBean) { + public boolean addFeedback(FeedbackBean feedbackBean, String sessionId) { List<String> mailsFeedbackList = getPollenServiceConfig().getMailsFeedbackList(); Locale locale = getPollenServiceConfig().getFeedbackLocale(); @@ -47,7 +47,7 @@ public class FeedbackService extends PollenServiceSupport { EmailService emailService = getEmailService(); - FeedbackEmail feedbackEMail = emailService.newFeedbackMail(feedbackBean, userBean, locale); + FeedbackEmail feedbackEMail = emailService.newFeedbackMail(feedbackBean, userBean, sessionId, locale); feedbackEMail.getTos().addAll(mailsFeedbackList); emailService.send(feedbackEMail); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java index cbb7f5f9..8544c523 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/EmailService.java @@ -429,7 +429,8 @@ public class EmailService extends PollenServiceSupport { String[] emailSplit = fromAddress.getAddress().split("@"); String userFrom = emailSplit[0]; String domainFrom = emailSplit[1]; - fromAddress.setAddress(userFrom + "+" + getMailId(mail) + "@" + domainFrom); + String mailId = getMailId(mail); + fromAddress.setAddress(userFrom + "+" + mailId + "@" + domainFrom); String from = fromAddress.toUnicodeString(); Collection<InternetAddress> replyTo = mail.getReplyTo(); @@ -438,10 +439,16 @@ public class EmailService extends PollenServiceSupport { emailToResend.setSubject(subject); emailToResend.setBody(body); emailToResend.setAdrFrom(from); - emailToResend.setReplyTo(replyTo.stream().map(InternetAddress::toUnicodeString).reduce("", (s, s2) -> s + ", " + s2)); + emailToResend.setReplyTo(replyTo.stream() + .map(InternetAddress::toUnicodeString) + .collect(Collectors.joining(", "))); emailToResend.setTos(StringUtils.join(tos, RECIPIENT_SEPARATOR)); emailToResend.setBccs(StringUtils.join(bccs, RECIPIENT_SEPARATOR)); + if (log.isInfoEnabled()) { + log.info("record email after send : " + mailId); + } + } else { if (log.isErrorEnabled()) { log.error("email has no recipient, won't be sent " + mail); @@ -487,6 +494,9 @@ public class EmailService extends PollenServiceSupport { } newEmail.setMsg(body); newEmail.send(); + if (log.isInfoEnabled()) { + log.info("send email to : " + tos.stream().collect(Collectors.joining(", ")) + " - from " + from); + } } } @@ -678,10 +688,11 @@ public class EmailService extends PollenServiceSupport { return value; } - public FeedbackEmail newFeedbackMail(FeedbackBean feedbackBean, PollenUserBean user, Locale locale) { + public FeedbackEmail newFeedbackMail(FeedbackBean feedbackBean, PollenUserBean user, String sessionId, Locale locale) { FeedbackEmail email = new FeedbackEmail(locale, getTimeZone()); email.setUser(user); email.setFeedback(feedbackBean); + email.setSessionId(sessionId); email.setFeedbackDate(getNow()); if (feedbackBean.getScreenShotId() != null) { String screenShotUrl = getPollenUIUrlRenderService().getResourceUrl( @@ -705,10 +716,10 @@ public class EmailService extends PollenServiceSupport { protected String getMailId(PollenMail mail) { PollenMailType pollenEmailType = PollenMailType.valueOfMail(mail); - return pollenEmailType.name() + + return pollenEmailType.name() + MAIL_ID_SEPARATOR + mail.getEntitiesKey().stream() .map(entity -> PollenEmailKeyType.valueOfEntity(entity).name() + getReduceId(entity)) - .reduce("", (s, s2) -> s + MAIL_ID_SEPARATOR + s2); + .collect(Collectors.joining(MAIL_ID_SEPARATOR)); } /** diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/FeedbackEmail.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/FeedbackEmail.java index 3dc6937c..a26b3e74 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/FeedbackEmail.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/FeedbackEmail.java @@ -44,7 +44,10 @@ public class FeedbackEmail extends PollenMail { protected Date feedbackDate; protected String applicationVersion; - private String screenShotUrl; + + protected String screenShotUrl; + + protected String sessionId; public FeedbackEmail(Locale locale, TimeZone timeZone) { super(locale, timeZone); @@ -99,4 +102,12 @@ public class FeedbackEmail extends PollenMail { public List<TopiaEntity> getEntitiesKey() { return Collections.emptyList(); } + + public void setSessionId(String sessionId) { + this.sessionId = sessionId; + } + + public String getSessionId() { + return sessionId; + } } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/MailBoxService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/MailBoxService.java index da2c73e9..dd7f7e49 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/MailBoxService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/mail/MailBoxService.java @@ -112,8 +112,8 @@ public class MailBoxService extends PollenServiceSupport { protected void processMessage(Message message) { try { - if (log.isDebugEnabled()) { - log.debug(String.format("Process message \"%1s\" recevied at %tF ...", message.getSubject(), message.getReceivedDate())); + if (log.isInfoEnabled()) { + log.info(String.format("Process message \"%1s\" recevied at %tF ...", message.getSubject(), message.getReceivedDate())); } String[] tos = message.getHeader("To"); @@ -121,6 +121,9 @@ public class MailBoxService extends PollenServiceSupport { if (ArrayUtils.isNotEmpty(tos)) { String mailId = getMailId(tos[0]); if (StringUtils.isNotBlank(mailId)) { + if (log.isInfoEnabled()) { + log.info("Found mail id : " + mailId); + } PollenMailReturnContext context = extractMessageContext(message, mailId); context.getMailType().getAction().accept(this, context); } @@ -186,6 +189,9 @@ public class MailBoxService extends PollenServiceSupport { protected void forwardToCreatorAction(Poll poll, Message message) { String email = poll.getCreator().getEmail(); if (StringUtils.isNotBlank(email)) { + if (log.isInfoEnabled()) { + log.info("Forward to " + email); + } try { getEmailService().forward(message, Collections.singleton(email), @@ -209,6 +215,9 @@ public class MailBoxService extends PollenServiceSupport { protected void undeliveredFlagPollenPrincipal(PollenPrincipal pollenPrincipal, Message message) { if (isUndeliveredMessage(message)) { + if (log.isInfoEnabled()) { + log.info("Set undelivered flag to " + pollenPrincipal.getTopiaId()); + } pollenPrincipal.setInvalid(true); commit(); } diff --git a/pollen-services/src/main/resources/email/FeedbackEmail.mustache b/pollen-services/src/main/resources/email/FeedbackEmail.mustache index fad17908..89efeb53 100644 --- a/pollen-services/src/main/resources/email/FeedbackEmail.mustache +++ b/pollen-services/src/main/resources/email/FeedbackEmail.mustache @@ -17,6 +17,7 @@ Operating System : {{feedback.operatingSystem}} Platform : {{feedback.platform}} Screen resolution : {{feedback.screenResolution.width}} x {{feedback.screenResolution.height}} (L x H) window resolution : {{feedback.windowDimension.width}} x {{feedback.windowDimension.height}} (L x H) +Session : {{sessionId}} User : {{#user}}{{user.name}} ({{user.email}}){{/user}}{{^user}}Anonymous{{/user}} Locale : {{feedback.locale}} Services version : {{applicationVersion}} diff --git a/pollen-services/src/main/resources/email/FeedbackEmail_fr.mustache b/pollen-services/src/main/resources/email/FeedbackEmail_fr.mustache index 5b9a8de8..315d4b87 100644 --- a/pollen-services/src/main/resources/email/FeedbackEmail_fr.mustache +++ b/pollen-services/src/main/resources/email/FeedbackEmail_fr.mustache @@ -18,6 +18,7 @@ Plateforme : {{feedback.platform}} Résolution : {{feedback.screenResolution.width}} x {{feedback.screenResolution.height}} (L x H) Taille d'affichage : {{feedback.windowDimension.width}} x {{feedback.windowDimension.height}} (L x H) Langue : {{feedback.locale}} +Session : {{sessionId}} Utilisateur : {{#user}}{{user.name}} ({{user.email}}){{/user}}{{^user}}Anonyme{{/user}} Version services : {{applicationVersion}} {{#screenShotUrl}} -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.