r1839 - in trunk/wao-services/src/main: java/fr/ifremer/wao/services/service java/fr/ifremer/wao/services/service/mail resources/email
Author: tchemit Date: 2014-04-05 19:48:39 +0200 (Sat, 05 Apr 2014) New Revision: 1839 Url: http://forge.codelutin.com/projects/wao/repository/revisions/1839 Log: refs #4487 use modern EmailService Added: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/mail/MammalsObservationEmail.java trunk/wao-services/src/main/resources/email/MammalsObservationEmail_en.mustache trunk/wao-services/src/main/resources/email/MammalsObservationEmail_fr.mustache Removed: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/EmailService.java Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java Deleted: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/EmailService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/EmailService.java 2014-04-04 16:15:57 UTC (rev 1838) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/EmailService.java 2014-04-05 17:48:39 UTC (rev 1839) @@ -1,51 +0,0 @@ -package fr.ifremer.wao.services.service; - -import com.google.common.base.Charsets; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.commons.mail.EmailException; -import org.apache.commons.mail.SimpleEmail; - -/** - * //TODO remove this and use the {@link fr.ifremer.wao.services.service.mail.EmailService}. - * Created on 4/4/14. - * - * @author Tony Chemit <chemit@codelutin.com> - * @since 4.0 - */ -public class EmailService extends WaoServiceSupport { - - /** Logger. */ - private static final Log log = LogFactory.getLog(EmailService.class); - - public void sendEmail(String to, String subject, String msg) - throws EmailException { - if (log.isInfoEnabled()) { - log.info("Send an email to " + to + " : " + subject); - } - SimpleEmail email = prepareEmail(to, subject, msg); - if (getApplicationConfig().isDevMode()) { - log.debug("send email to " + to + " subject " + subject + " msg " + msg); - } else { - email.send(); - } - } - - public SimpleEmail prepareEmail(String to, String subject, String msg) - throws EmailException { - - String smtpFrom = getApplicationConfig().getSmtpFrom(); - int smtpPort = getApplicationConfig().getSmtpPort(); - String smtpHost = getApplicationConfig().getSmtpHost(); - - SimpleEmail email = new SimpleEmail(); - email.setHostName(smtpHost); - email.setSmtpPort(smtpPort); - email.setFrom(smtpFrom); - email.addTo(to); - email.setSubject(subject); - email.setMsg(msg); - email.setCharset(Charsets.UTF_8.toString()); - return email; - } -} Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java 2014-04-04 16:15:57 UTC (rev 1838) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java 2014-04-05 17:48:39 UTC (rev 1839) @@ -4,7 +4,6 @@ import com.google.common.collect.ImmutableSet; import fr.ifremer.wao.ContactsFilter; import fr.ifremer.wao.WaoTechnicalException; -import fr.ifremer.wao.WaoUtils; import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.Contact; import fr.ifremer.wao.entity.ContactState; @@ -13,7 +12,6 @@ import fr.ifremer.wao.entity.DataReliability; import fr.ifremer.wao.entity.ElligibleBoat; import fr.ifremer.wao.entity.ElligibleBoatTopiaDao; -import fr.ifremer.wao.entity.FishingZone; import fr.ifremer.wao.entity.ObsProgram; import fr.ifremer.wao.entity.ObservedDataControl; import fr.ifremer.wao.entity.SampleMonth; @@ -23,6 +21,7 @@ import fr.ifremer.wao.entity.WaoUserTopiaDao; import fr.ifremer.wao.services.AuthenticatedWaoUser; import fr.ifremer.wao.services.service.csv.ObsMerContactImportExportModel; +import fr.ifremer.wao.services.service.mail.MammalsObservationEmail; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.BooleanUtils; @@ -39,12 +38,10 @@ import org.nuiton.csv.ImportRuntimeException; import org.nuiton.topia.persistence.pager.TopiaPagerBean; import org.nuiton.util.DateUtil; -import org.nuiton.util.StringUtil; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; import java.io.InputStream; -import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; import java.util.Date; @@ -327,85 +324,19 @@ if (sendNotification) { - // we will send a mail with a body like - //Bonjour, - // - //Un observateur du programme Obsmer a renseigné dans WAO l'information suivante : - // - //Marée : 25/10/2010 00:00 - 26/10/2010 00:00 - //Métier : 2010_0037 Manche Ouest (Manche, Mer du Nord) Secteur Brest Granville centré autour de St malo OTB_DEF 80-90 Chalutage de fond côtier sole, seiche - // - //Capture accidentelle : - //deux tritons et une sirène - // - //Cordialement, - // - //Le programme Obsmer - //http://www.ifremer.fr/wao + MammalsObservationEmail email = new MammalsObservationEmail(getLocale()); + email.setContact(contact); - Locale locale = serviceContext.getLocale(); - - String object = l(locale, "wao.business.mammalsCapture.mail.subject"); - - // building 2 string, components of the body - - // the time of the capture (it's between tide begin and end) - String time = ""; - if (contact.getObservationBeginDate() != null) { - time = WaoUtils.formatDateTime(locale, contact.getObservationBeginDate()) + " "; - } - if (contact.getObservationEndDate() != null) { - time += WaoUtils.formatDateTime(locale, contact.getObservationEndDate()); - } - - // some details from the sample row, facade, etc. - SampleRow sampleRow = contact.getSampleRow(); - List<String> facadesNames = new ArrayList<String>(); - for (FishingZone fishingZone : sampleRow.getFishingZone()) { - facadesNames.add(fishingZone.getSectorName() + " (" + fishingZone.getFacadeName() + ")"); - } - String profession = sampleRow.getCode() + " " - + " " + StringUtil.join(facadesNames, ", ", true) - + " " + sampleRow.getFishingZonesInfos() - + " " + sampleRow.getProfessionDescription() - + " " + sampleRow.getProfession().getLibelle() - + " " + sampleRow.getProfession().getSpecies(); - - // constructing the whole mail - String body = l(locale, "wao.business.mammalsCapture.mail.message", - time, profession, contact.getMammalsInfo()); - - if (log.isInfoEnabled()) { - log.info("will send email with object '" + object + "' and body \n" + body); - } - // now trying to find to what user we need to send the mail WaoUserTopiaDao userDao = getWaoUserDao(); // users contains all the user we need to notify for the capture List<WaoUser> waoUsers = userDao.forMammalsNotificationsEquals(true).findAll(); - if (log.isDebugEnabled()) { - log.debug("notification will be sent to " + waoUsers.size() + " users"); - } - - //TODO remove this and use the {@link fr.ifremer.wao.services.service.mail.EmailService}. - // sending the same e-mail to all of them for (WaoUser waoUser : waoUsers) { - String userLogin = waoUser.getLogin(); - if (StringUtil.isEmail(userLogin)) { - try { - EmailService emailService = newService(EmailService.class); - emailService.sendEmail(userLogin, object, body); - if (log.isInfoEnabled()) { - log.info("email sent to " + userLogin); - } - } catch (EmailException e) { - if (log.isErrorEnabled()) { - log.error("unable to send email to " + userLogin, e); - } - } - } + email.addTo(waoUser); } + + getEmailService().send(email); } } Added: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/mail/MammalsObservationEmail.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/mail/MammalsObservationEmail.java (rev 0) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/mail/MammalsObservationEmail.java 2014-04-05 17:48:39 UTC (rev 1839) @@ -0,0 +1,67 @@ +package fr.ifremer.wao.services.service.mail; + +import fr.ifremer.wao.WaoUtils; +import fr.ifremer.wao.entity.Contact; +import fr.ifremer.wao.entity.FishingZone; +import fr.ifremer.wao.entity.SampleRow; +import org.nuiton.i18n.I18n; +import org.nuiton.util.StringUtil; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +/** + * Created on 4/5/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 4.0 + */ +public class MammalsObservationEmail extends WaoMail { + + private Contact contact; + + public MammalsObservationEmail(Locale locale) { + super(locale); + } + + @Override + public String getSubject() { + return I18n.l(locale, "wao.business.mammalsCapture.mail.subject"); + } + + public void setContact(Contact contact) { + this.contact = contact; + } + + public Contact getContact() { + return contact; + } + + public SampleRow getSampleRow() { + return contact.getSampleRow(); + } + + public String getTime() { + // the time of the capture (it's between tide begin and end) + + String time = ""; + if (contact.getObservationBeginDate() != null) { + time = WaoUtils.formatDateTime(locale, contact.getObservationBeginDate()) + " "; + } + if (contact.getObservationEndDate() != null) { + time += WaoUtils.formatDateTime(locale, contact.getObservationEndDate()); + } + return time; + } + + public String getFacadeNames() { + + List<String> facadesNames = new ArrayList<>(); + for (FishingZone fishingZone : getSampleRow().getFishingZone()) { + facadesNames.add(fishingZone.getSectorName() + " (" + fishingZone.getFacadeName() + ")"); + } + + return StringUtil.join(facadesNames, ", ", true); + } +} Property changes on: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/mail/MammalsObservationEmail.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/wao-services/src/main/resources/email/MammalsObservationEmail_en.mustache =================================================================== --- trunk/wao-services/src/main/resources/email/MammalsObservationEmail_en.mustache (rev 0) +++ trunk/wao-services/src/main/resources/email/MammalsObservationEmail_en.mustache 2014-04-05 17:48:39 UTC (rev 1839) @@ -0,0 +1,13 @@ +Hello, + +An observer of the ObsMer program provided to WAO the following information: + +Tide: {{time}} +Profession: {{sampleRow.code}} {{facadeNames}} {{sampleRow.fishingZonesInfos}} {{sampleRow.professionDescription}} {{sampleRow.profession.getLibelle}} {{sampleRow.profession.species}} + +Accidental capture: +{{contact.mammalsInfo}} + +Best regards, + +Obsmer program http://www.ifremer.fr/wao \ No newline at end of file Added: trunk/wao-services/src/main/resources/email/MammalsObservationEmail_fr.mustache =================================================================== --- trunk/wao-services/src/main/resources/email/MammalsObservationEmail_fr.mustache (rev 0) +++ trunk/wao-services/src/main/resources/email/MammalsObservationEmail_fr.mustache 2014-04-05 17:48:39 UTC (rev 1839) @@ -0,0 +1,13 @@ +Bonjour, + +Un observateur du programme Obsmer a renseigné dans WAO l'information suivante : + +Marée : {{time}} +Métier : {{sampleRow.code}} {{facadeNames}} {{sampleRow.fishingZonesInfos}} {{sampleRow.professionDescription}} {{sampleRow.profession.getLibelle}} {{sampleRow.profession.species}} + +Capture accidentelle : +{{contact.mammalsInfo}} + +Cordialement, + +Le programme Obsmer http://www.ifremer.fr/wao \ No newline at end of file
participants (1)
-
tchemit@users.forge.codelutin.com