From cbf2b73eb93e3449d6c5beb3c5627c0e0466e9ff Mon Sep 17 00:00:00 2001 From: Lars Johansson <lars.johansson@ess.eu> Date: Mon, 3 Jul 2023 12:41:06 +0200 Subject: [PATCH] Fix to send email notifications only when there are changes to notify about --- .../names/service/NotificationService.java | 9 +++++++ .../openepics/names/util/ValidateUtil.java | 19 ++++++++++++++ .../names/util/ValidateUtilTest.java | 25 +++++++++++++++++++ 3 files changed, 53 insertions(+) diff --git a/src/main/java/org/openepics/names/service/NotificationService.java b/src/main/java/org/openepics/names/service/NotificationService.java index 75dcadee..a094c562 100644 --- a/src/main/java/org/openepics/names/service/NotificationService.java +++ b/src/main/java/org/openepics/names/service/NotificationService.java @@ -27,6 +27,7 @@ import java.util.logging.Logger; import org.apache.commons.lang3.StringUtils; import org.openepics.names.util.NameCommand; import org.openepics.names.util.StructureCommand; +import org.openepics.names.util.ValidateUtil; import org.openepics.names.util.notification.NotificationName; import org.openepics.names.util.notification.NotificationStructure; import org.openepics.names.util.notification.NotificationUtil; @@ -114,6 +115,10 @@ public class NotificationService { numberUpdated, numberDeleted)); + if (ValidateUtil.areAllZero(numberCreated, numberUpdated, numberDeleted)) { + return; + } + // email content final Context ctx = new Context(); ctx.setVariable("numberCreated", numberCreated); @@ -201,6 +206,10 @@ public class NotificationService { numberCancelled, numberRejected)); + if (ValidateUtil.areAllZero(numberCreated, numberUpdated, numberDeleted, numberApproved, numberCancelled, numberRejected)) { + return; + } + // email content final Context ctx = new Context(); ctx.setVariable("numberCreated", numberCreated); diff --git a/src/main/java/org/openepics/names/util/ValidateUtil.java b/src/main/java/org/openepics/names/util/ValidateUtil.java index a49d1c3f..85a746e7 100644 --- a/src/main/java/org/openepics/names/util/ValidateUtil.java +++ b/src/main/java/org/openepics/names/util/ValidateUtil.java @@ -336,4 +336,23 @@ public class ValidateUtil { return false; } + /** + * Validate given ints such that <tt>true</tt> is returned if all ints are zero (0). + * This may be used to validate that given ints are not zero. + * + * @param values values + * @return boolean if validation is ok + */ + public static boolean areAllZero(int... values) { + if (values == null) { + return false; + } + for (int value : values) { + if (value != 0) { + return false; + } + } + return true; + } + } diff --git a/src/test/java/org/openepics/names/util/ValidateUtilTest.java b/src/test/java/org/openepics/names/util/ValidateUtilTest.java index 5a4089cc..68a99527 100644 --- a/src/test/java/org/openepics/names/util/ValidateUtilTest.java +++ b/src/test/java/org/openepics/names/util/ValidateUtilTest.java @@ -661,6 +661,31 @@ class ValidateUtilTest { assertEquals(expected, ValidateUtil.isAnyTrue(b1, b2, b3)); } + /** + * Test of validate an array if all ints in array are zero. + */ + @Test + void areAllZero() { + assertFalse(ValidateUtil.areAllZero(null)); + + assertTrue (ValidateUtil.areAllZero(0)); + assertFalse(ValidateUtil.areAllZero(1)); + + assertTrue (ValidateUtil.areAllZero(0, 0)); + assertFalse(ValidateUtil.areAllZero(0, 1)); + assertFalse(ValidateUtil.areAllZero(1, 0)); + assertFalse(ValidateUtil.areAllZero(1, 1)); + + assertTrue (ValidateUtil.areAllZero(0, 0, 0)); + assertFalse(ValidateUtil.areAllZero(0, 0, 1)); + assertFalse(ValidateUtil.areAllZero(0, 1, 0)); + assertFalse(ValidateUtil.areAllZero(0, 1, 1)); + assertFalse(ValidateUtil.areAllZero(1, 0, 0)); + assertFalse(ValidateUtil.areAllZero(1, 0, 1)); + assertFalse(ValidateUtil.areAllZero(1, 1, 0)); + assertFalse(ValidateUtil.areAllZero(1, 1, 1)); + } + // ---------------------------------------------------------------------------------------------------- /** -- GitLab