Skip to content
Snippets Groups Projects
Commit 23909532 authored by Tor-Einar Skog's avatar Tor-Einar Skog
Browse files

Commit before rewriting messaging module

parent 358c1049
Branches
No related tags found
No related merge requests found
...@@ -28,7 +28,9 @@ import java.util.ArrayList; ...@@ -28,7 +28,9 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import javax.ejb.Stateless; import javax.ejb.Stateless;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
...@@ -51,7 +53,7 @@ import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder; ...@@ -51,7 +53,7 @@ import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget; import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
/** /**
* @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a> * @copyright 2015-2022 <a href="http://www.nibio.no/">NIBIO</a>
* @author Tor-Einar Skog <tor-einar.skog@nibio.no> * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
*/ */
@Stateless @Stateless
...@@ -59,6 +61,19 @@ public class MessagingBean { ...@@ -59,6 +61,19 @@ public class MessagingBean {
@PersistenceContext(unitName="VIPSLogic-PU") @PersistenceContext(unitName="VIPSLogic-PU")
EntityManager em; EntityManager em;
private Map<Integer, UniversalMessageFormat> universalMessageFormats;
public UniversalMessageFormat getUniversalMessageFormat(Integer universalMessageFormatId)
{
if(this.universalMessageFormats == null)
{
this.universalMessageFormats = new HashMap<>();
this.universalMessageFormats.put(UniversalMessageFormat.FORMAT_SMS, em.find(UniversalMessageFormat.class, UniversalMessageFormat.FORMAT_SMS));
this.universalMessageFormats.put(UniversalMessageFormat.FORMAT_EMAIL, em.find(UniversalMessageFormat.class, UniversalMessageFormat.FORMAT_EMAIL));
}
return this.universalMessageFormats.get(universalMessageFormatId);
}
public void sendUniversalMessage(Message message) public void sendUniversalMessage(Message message)
{ {
String msgDownloadUrlTpl = "https://www.vips-landbruk.no/messages/" + message.getMessageId() + "/"; String msgDownloadUrlTpl = "https://www.vips-landbruk.no/messages/" + message.getMessageId() + "/";
...@@ -116,13 +131,13 @@ public class MessagingBean { ...@@ -116,13 +131,13 @@ public class MessagingBean {
{ {
try try
{ {
//System.out.println(new ObjectMapper().writeValueAsString(um)); System.out.println(new ObjectMapper().writeValueAsString(uMessage));
Response r = umClient.sendMessage(new ObjectMapper().writeValueAsString(uMessage)); Response r = umClient.sendMessage(new ObjectMapper().writeValueAsString(uMessage));
// TODO: Handle result // TODO: Handle result
String result = r.readEntity(String.class); String result = r.readEntity(String.class);
//System.out.println(result); System.out.println(result);
} }
catch(JsonProcessingException ex) catch(JsonProcessingException ex)
{ {
......
...@@ -63,6 +63,10 @@ import no.nibio.vips.logic.controller.session.UserBean; ...@@ -63,6 +63,10 @@ import no.nibio.vips.logic.controller.session.UserBean;
import no.nibio.vips.logic.entity.Organization; import no.nibio.vips.logic.entity.Organization;
import no.nibio.vips.logic.entity.VipsLogicRole; import no.nibio.vips.logic.entity.VipsLogicRole;
import no.nibio.vips.logic.entity.VipsLogicUser; import no.nibio.vips.logic.entity.VipsLogicUser;
import no.nibio.vips.logic.messaging.MessageRecipient;
import no.nibio.vips.logic.messaging.MessagingBean;
import no.nibio.vips.logic.messaging.UniversalMessage;
import no.nibio.vips.logic.messaging.UniversalMessageFormat;
import no.nibio.vips.logic.util.GISEntityUtil; import no.nibio.vips.logic.util.GISEntityUtil;
import no.nibio.vips.logic.util.Globals; import no.nibio.vips.logic.util.Globals;
import no.nibio.vips.logic.util.SimpleMailSender; import no.nibio.vips.logic.util.SimpleMailSender;
...@@ -83,6 +87,9 @@ public class BarkbeetleBean { ...@@ -83,6 +87,9 @@ public class BarkbeetleBean {
@EJB @EJB
UserBean userBean; UserBean userBean;
@EJB
MessagingBean messagingBean;
public static BarkbeetleBean getEJBInstance() public static BarkbeetleBean getEJBInstance()
{ {
try try
...@@ -775,8 +782,15 @@ public class BarkbeetleBean { ...@@ -775,8 +782,15 @@ public class BarkbeetleBean {
List<SeasonTrapsite> allSeasonTrapsites = this.getSeasonTrapsites(cal.get(Calendar.YEAR)); List<SeasonTrapsite> allSeasonTrapsites = this.getSeasonTrapsites(cal.get(Calendar.YEAR));
for(SeasonTrapsite st:allSeasonTrapsites) for(SeasonTrapsite st:allSeasonTrapsites)
{ {
String heading = "Barkbilleregistrering: Første påminnelse for uke " + (cal.get(Calendar.WEEK_OF_YEAR) + 1);
String message = this.getIndividualFirstReminderText(st, cal.get(Calendar.YEAR), cal.get(Calendar.WEEK_OF_YEAR) + 1); String message = this.getIndividualFirstReminderText(st, cal.get(Calendar.YEAR), cal.get(Calendar.WEEK_OF_YEAR) + 1);
String recipientMail = "tor-einar.skog@nibio.no"; //VipsLogicUser recipient = st.getUserId();
// TESTING
VipsLogicUser recipient = new VipsLogicUser();
recipient.setEmail("tor-einar.skog@nibio.no");
recipient.setPhone("91303819");
this.sendReminder(List.of(recipient), heading, message);
/*String recipientMail = "tor-einar.skog@nibio.no";
//String recipientMail = st.getUserId().getEmail(); //String recipientMail = st.getUserId().getEmail();
String registrantPhone = "+4791303819"; String registrantPhone = "+4791303819";
System.out.println("Phone number would have been " + st.getUserId().getPhoneCountryCode() + st.getUserId().getPhone()); System.out.println("Phone number would have been " + st.getUserId().getPhoneCountryCode() + st.getUserId().getPhone());
...@@ -786,7 +800,7 @@ public class BarkbeetleBean { ...@@ -786,7 +800,7 @@ public class BarkbeetleBean {
mailSender.sendMail("noreply-vips@nibio.no", recipientMail, "Barkbilleregistrering: Første påminnelse for uke " + (cal.get(Calendar.WEEK_OF_YEAR) + 1), message); mailSender.sendMail("noreply-vips@nibio.no", recipientMail, "Barkbilleregistrering: Første påminnelse for uke " + (cal.get(Calendar.WEEK_OF_YEAR) + 1), message);
// Alternative 2: Send SMS // Alternative 2: Send SMS
*/
break; break;
} }
...@@ -904,10 +918,41 @@ public class BarkbeetleBean { ...@@ -904,10 +918,41 @@ public class BarkbeetleBean {
return retVal; return retVal;
} }
public void sendReminder(VipsLogicUser user, String reminderTxt) { /**
* Using the VIPS messaging system
* @param recipients
* @param heading
* @param body
*/
public void sendReminder(List<VipsLogicUser> users, String heading, String body) {
UniversalMessage uMessage = new UniversalMessage();
Calendar cal = Calendar.getInstance(BarkbeetleBean.NORGE_MITT_NORGE);
cal.setTime(new Date());
cal.add(Calendar.DATE, 2);
uMessage.setExpiresAt(cal.getTime());
uMessage.addMessageLocalVersion("nb", heading, "", body, "");
List<MessageRecipient> recipients = users.stream().map(user->{
MessageRecipient recipient = new MessageRecipient();
UniversalMessageFormat umf = messagingBean.getUniversalMessageFormat(
user.isApprovesSmsBilling() && !user.getPhone().trim().isBlank() ?
UniversalMessageFormat.FORMAT_SMS
: UniversalMessageFormat.FORMAT_EMAIL
);
recipient.setType(umf.getFormatName());
recipient.setMsgDeliveryAddress(
umf.getUniversalMessageFormatId().equals(UniversalMessageFormat.FORMAT_SMS) ?
user.getPhone()
: user.getEmail()
);
recipient.setFreeSms(user.isFreeSms());
return recipient;
})
.collect(Collectors.toList());
uMessage.setDistributionList(recipients);
messagingBean.sendUniversalMessage(uMessage);
} }
/* /*
public List<SeasonTrapsite> getSeasonTrapsitesForCounty2012(Integer season, String county2012) public List<SeasonTrapsite> getSeasonTrapsitesForCounty2012(Integer season, String county2012)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment