From dfecf4ac76e8cdc9fe2b157ec29f87909b227249 Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Fri, 14 Oct 2022 10:52:26 +0200
Subject: [PATCH] Refactor:Move prop includeNotificationSettingsLink up to
 VIPSMessage

---
 .../distribution/entity/MsgToSend.java        | 17 +-----------
 .../distribution/entity/VipsMessage.java      | 27 +++++++++++++++++--
 .../send/MailMsgDeliveryHandler.java          |  2 +-
 .../send/SmsMsgDeliveryHandler.java           |  2 +-
 4 files changed, 28 insertions(+), 20 deletions(-)

diff --git a/src/main/java/no/nibio/vips/logic/messaging/distribution/entity/MsgToSend.java b/src/main/java/no/nibio/vips/logic/messaging/distribution/entity/MsgToSend.java
index 1e3abbee..1586f0b8 100644
--- a/src/main/java/no/nibio/vips/logic/messaging/distribution/entity/MsgToSend.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/distribution/entity/MsgToSend.java
@@ -51,9 +51,6 @@ public class MsgToSend {
         // The lead paragraph (AKA "Ingress")
 	public String msgLeadParagraph;
 
-	// Include by default. If not needed, use constructor that makes it configurable
-	private Boolean includeNotificationSettingsLink = Boolean.TRUE;
-
 
 	/* (non-Javadoc)
 	 * @see no.nibio.vips_msg_dist.dao.Test#getMsgSubject()
@@ -125,6 +122,7 @@ public class MsgToSend {
 		this.locale = locale;
 	}
 
+
 	/**
 	 * @return The localized string **template** for generating a link to a user's page for
 	 * managing notification subscription settings
@@ -137,17 +135,4 @@ public class MsgToSend {
 	}
 
 
-	/**
-	 * If true, the SMS and mail messages will have this type of link appended at the end:
-	 * "To edit your notification subscriptions, please use this link: https://logic.vips.nibio.no/user/notificationsubscription?userId=1"
-	 * The server name can be configured with the system properties no.nibio.vips.logic.VIPSLOGIC_PROTOCOL and no.nibio.vips.logic.SERVER_NAME
-	 * @return
-	 */
-	public Boolean getIncludeNotificationSettingsLink() {
-		return includeNotificationSettingsLink;
-	}
-
-	public void setIncludeNotificationSettingsLink(Boolean includeNotificationSettingsLink) {
-		this.includeNotificationSettingsLink = includeNotificationSettingsLink;
-	}
 }
diff --git a/src/main/java/no/nibio/vips/logic/messaging/distribution/entity/VipsMessage.java b/src/main/java/no/nibio/vips/logic/messaging/distribution/entity/VipsMessage.java
index 1c616617..257a3fe5 100644
--- a/src/main/java/no/nibio/vips/logic/messaging/distribution/entity/VipsMessage.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/distribution/entity/VipsMessage.java
@@ -20,12 +20,17 @@ package no.nibio.vips.logic.messaging.distribution.entity;
 
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.ResourceBundle;
 import java.util.stream.Collectors;
+
+import com.ibm.icu.util.ULocale;
 import no.nibio.vips.logic.messaging.UniversalMessage;
 import no.nibio.vips.logic.messaging.distribution.send.IMsgContent;
+import no.nibio.vips.logic.util.Globals;
 
 
 /**
@@ -38,7 +43,10 @@ import no.nibio.vips.logic.messaging.distribution.send.IMsgContent;
 
 // TODO use get and setter
 public class VipsMessage implements IMsgContent {
-    
+
+    // Include by default. If not needed, use constructor that makes it configurable
+    private Boolean includeNotificationSettingsLink = Boolean.TRUE;
+
     /**
      * Create from UniversalMessage
      * TODO: Complete integration of entities!
@@ -47,6 +55,7 @@ public class VipsMessage implements IMsgContent {
     public VipsMessage(UniversalMessage universalMessage)
     {
         this.expiresAt = universalMessage.getExpiresAt();
+        this.setIncludeNotificationSettingsLink(universalMessage.getIncludeNotificationSettingsLink());
         this.distributionList = universalMessage.getDistributionListObjects().stream().map(umRecipient->{
             MsgReceiver msgReceiver = new MsgReceiver();
             msgReceiver.type = umRecipient.getType().toLowerCase().equals("mail") ? DistributionTypeEnum.Mail : DistributionTypeEnum.Sms;
@@ -102,6 +111,20 @@ public class VipsMessage implements IMsgContent {
 	public void setMessageLocalVersions(List<MsgToSend> messageLocalVersions) {
 		this.messageLocalVersions = messageLocalVersions;
 	}
-	
+
+
+    /**
+     * If true, the SMS and mail messages will have this type of link appended at the end:
+     * "To edit your notification subscriptions, please use this link: https://logic.vips.nibio.no/user/notificationsubscription?userId=1"
+     * The server name can be configured with the system properties no.nibio.vips.logic.VIPSLOGIC_PROTOCOL and no.nibio.vips.logic.SERVER_NAME
+     * @return
+     */
+    public Boolean getIncludeNotificationSettingsLink() {
+        return includeNotificationSettingsLink;
+    }
+
+    public void setIncludeNotificationSettingsLink(Boolean includeNotificationSettingsLink) {
+        this.includeNotificationSettingsLink = includeNotificationSettingsLink;
+    }
 
 }
diff --git a/src/main/java/no/nibio/vips/logic/messaging/distribution/send/MailMsgDeliveryHandler.java b/src/main/java/no/nibio/vips/logic/messaging/distribution/send/MailMsgDeliveryHandler.java
index d13d028b..f4da6f78 100644
--- a/src/main/java/no/nibio/vips/logic/messaging/distribution/send/MailMsgDeliveryHandler.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/distribution/send/MailMsgDeliveryHandler.java
@@ -150,7 +150,7 @@ public class MailMsgDeliveryHandler implements IDeliveryMsgHandler {
             } else {
                 sendMessage(msgToSend.getMsgSubject(), msgToSend.getMsgLeadParagraph(), new StringBuffer(msgToSend.getMsgBody()).append("\n\n")
                         .append(msgToSend.getMsgDownloadUrl() != null ? msgToSend.getMsgDownloadUrl():"")
-                                .append(msgToSend.getIncludeNotificationSettingsLink() ? "\n\n" + MessageFormat.format(msgToSend.getNotificationSettingsLinkTpl(),msgReceiver.recipientId): "\n"),
+                                .append(vm.getIncludeNotificationSettingsLink() ? "\n\n" + MessageFormat.format(msgToSend.getNotificationSettingsLinkTpl(),msgReceiver.recipientId): "\n"),
                         msgReceiver.msgDeliveryAddress);
             }
             return SingleMsgSentStateEnum.Ok;
diff --git a/src/main/java/no/nibio/vips/logic/messaging/distribution/send/SmsMsgDeliveryHandler.java b/src/main/java/no/nibio/vips/logic/messaging/distribution/send/SmsMsgDeliveryHandler.java
index 965ef4b3..74af3dfa 100644
--- a/src/main/java/no/nibio/vips/logic/messaging/distribution/send/SmsMsgDeliveryHandler.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/distribution/send/SmsMsgDeliveryHandler.java
@@ -136,7 +136,7 @@ public class SmsMsgDeliveryHandler implements IDeliveryMsgHandler {
                 + msgToSend.getMsgLeadParagraph() + "\n"
                 + msgToSend.getMsgBody()
                 + (msgToSend.getMsgDownloadUrl() != null ? "\n" + msgToSend.getMsgDownloadUrl().toString(): "\n")
-                + (msgToSend.getIncludeNotificationSettingsLink() ? "\n\n" + MessageFormat.format(msgToSend.getNotificationSettingsLinkTpl(), msgReceiver.recipientId): "\n");
+                + (vm.getIncludeNotificationSettingsLink() ? "\n\n" + MessageFormat.format(msgToSend.getNotificationSettingsLinkTpl(), msgReceiver.recipientId): "\n");
         LOGGER.debug(smsText);
         LOGGER.debug("Teksten er på " + smsText.length() + " tegn.");
 
-- 
GitLab