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
No related branches found
No related tags found
No related merge requests found
......@@ -28,7 +28,9 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
......@@ -51,7 +53,7 @@ import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
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>
*/
@Stateless
......@@ -59,6 +61,19 @@ public class MessagingBean {
@PersistenceContext(unitName="VIPSLogic-PU")
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)
{
String msgDownloadUrlTpl = "https://www.vips-landbruk.no/messages/" + message.getMessageId() + "/";
......@@ -116,13 +131,13 @@ public class MessagingBean {
{
try
{
//System.out.println(new ObjectMapper().writeValueAsString(um));
System.out.println(new ObjectMapper().writeValueAsString(uMessage));
Response r = umClient.sendMessage(new ObjectMapper().writeValueAsString(uMessage));
// TODO: Handle result
String result = r.readEntity(String.class);
//System.out.println(result);
System.out.println(result);
}
catch(JsonProcessingException ex)
{
......
......@@ -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.VipsLogicRole;
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.Globals;
import no.nibio.vips.logic.util.SimpleMailSender;
......@@ -83,6 +87,9 @@ public class BarkbeetleBean {
@EJB
UserBean userBean;
@EJB
MessagingBean messagingBean;
public static BarkbeetleBean getEJBInstance()
{
try
......@@ -775,8 +782,15 @@ public class BarkbeetleBean {
List<SeasonTrapsite> allSeasonTrapsites = this.getSeasonTrapsites(cal.get(Calendar.YEAR));
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 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 registrantPhone = "+4791303819";
System.out.println("Phone number would have been " + st.getUserId().getPhoneCountryCode() + st.getUserId().getPhone());
......@@ -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);
// Alternative 2: Send SMS
*/
break;
}
......@@ -904,10 +918,41 @@ public class BarkbeetleBean {
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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment