diff --git a/src/main/java/edu/hawaii/its/api/controller/GroupingsRestControllerv2_1.java b/src/main/java/edu/hawaii/its/api/controller/GroupingsRestControllerv2_1.java index 3bb8a93f5..a91ac9e4f 100644 --- a/src/main/java/edu/hawaii/its/api/controller/GroupingsRestControllerv2_1.java +++ b/src/main/java/edu/hawaii/its/api/controller/GroupingsRestControllerv2_1.java @@ -669,11 +669,11 @@ public ResponseEntity getAsyncJobResult(@RequestHeader(CURRENT_USER_KEY) String /** * Get the list of active announcements to display. */ - @GetMapping(value = "/announcements/active") - public ResponseEntity activeAnnouncements() { + @GetMapping(value = "/announcements") + public ResponseEntity getAnnouncements() { logger.info("Entered REST activeAnnouncements..."); return ResponseEntity .ok() - .body(announcementsService.activeAnnouncements()); + .body(announcementsService.getAnnouncements()); } } diff --git a/src/main/java/edu/hawaii/its/api/service/AnnouncementsService.java b/src/main/java/edu/hawaii/its/api/service/AnnouncementsService.java index eeb3a44a3..58bd43947 100644 --- a/src/main/java/edu/hawaii/its/api/service/AnnouncementsService.java +++ b/src/main/java/edu/hawaii/its/api/service/AnnouncementsService.java @@ -1,18 +1,12 @@ package edu.hawaii.its.api.service; -import java.util.ArrayList; -import java.util.List; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; -import edu.hawaii.its.api.type.Announcement; import edu.hawaii.its.api.type.Announcements; -import edu.hawaii.its.api.util.JsonUtil; -import edu.hawaii.its.api.wrapper.AttributesResult; import edu.hawaii.its.api.wrapper.FindAttributesResults; @Service @@ -28,17 +22,10 @@ public class AnnouncementsService { @Autowired private GrouperApiService grouperApiService; - public Announcements setAnnouncements(AttributesResult attributesResult) { - List announcementsList = new ArrayList<>(); - announcementsList = JsonUtil.asList(attributesResult.getDescription(), Announcement.class); - return new Announcements(announcementsList); - } - - public List activeAnnouncements() { + public Announcements getAnnouncements() { FindAttributesResults findAttributesResults = grouperApiService.findAttributesResults( ANNOUNCEMENTS_ATTR_DEF, ANNOUNCEMENTS_ATTR_NAME); - Announcements activeAnnouncements = setAnnouncements(findAttributesResults.getResult()); - return activeAnnouncements.validMessages(activeAnnouncements.getAnnouncements()); + return new Announcements(findAttributesResults); } } diff --git a/src/main/java/edu/hawaii/its/api/type/Announcements.java b/src/main/java/edu/hawaii/its/api/type/Announcements.java index 542338b66..92524da53 100644 --- a/src/main/java/edu/hawaii/its/api/type/Announcements.java +++ b/src/main/java/edu/hawaii/its/api/type/Announcements.java @@ -3,43 +3,47 @@ import java.util.ArrayList; import java.util.List; -import org.springframework.stereotype.Service; -@Service +import edu.hawaii.its.api.util.JsonUtil; +import edu.hawaii.its.api.wrapper.AttributesResult; +import edu.hawaii.its.api.wrapper.FindAttributesResults; + public class Announcements { private String resultCode; - private List announcements = new ArrayList<>(); + private List announcements; + + public Announcements(FindAttributesResults findAttributesResults) { + setResultCode(findAttributesResults.getResultCode()); + setAnnouncements(findAttributesResults.getResult()); + } public Announcements(List announcements) { - if (announcements != null) { - for (Announcement a : announcements) { - this.announcements.add(a); - } - setResultCode("SUCCESS"); - } + setResultCode("SUCCESS"); + setAnnouncements(announcements); } public Announcements() { setResultCode("FAILURE"); + setAnnouncements(new ArrayList<>()); } - private void setResultCode(String resultCode) { - this.resultCode = resultCode; + public String getResultCode() { + return resultCode; } public List getAnnouncements() { return announcements; } - public String getResultCode() { - return resultCode; + + private void setResultCode(String resultCode) { + this.resultCode = resultCode; } - public List validMessages(List allGroupingsAnnouncements) { - List validMessages = new ArrayList<>(); - for (Announcement groupingsAnnouncement : allGroupingsAnnouncements) { - if (groupingsAnnouncement.getState() == Announcement.State.Active) { - validMessages.add(groupingsAnnouncement.getMessage()); - } - } - return validMessages; + private void setAnnouncements(AttributesResult attributesResult) { + this.announcements = JsonUtil.asList(attributesResult.getDescription(), Announcement.class); } + + private void setAnnouncements(List announcements) { + this.announcements = announcements; + } + } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 6c42abff1..60dbd3f46 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -31,11 +31,9 @@ groupings.api.for_memberships=${groupings.api.attributes}:for-memberships groupings.api.last_modified=${groupings.api.for_groups}:last-modified groupings.api.yyyymmddThhmm=${groupings.api.last_modified}:yyyymmddThhmm groupings.api.uhgrouping=${groupings.api.for_groups}:uh-grouping - groupings.api.uhgroupings=${groupings.api.for_applications}:uhgroupings groupings.api.announcements=${groupings.api.uhgroupings}:announcements groupings.api.propertystring=${groupings.api.uhgroupings}:propertyString - groupings.api.destinations=${groupings.api.uhgrouping}:destinations groupings.api.listserv=${groupings.api.destinations}:listserv groupings.api.releasedgrouping=${groupings.api.destinations}:uhReleasedGrouping diff --git a/src/test/java/edu/hawaii/its/api/service/TestAnnouncementsService.java b/src/test/java/edu/hawaii/its/api/service/TestAnnouncementsService.java index 3d857a67d..2d2a9cfd8 100644 --- a/src/test/java/edu/hawaii/its/api/service/TestAnnouncementsService.java +++ b/src/test/java/edu/hawaii/its/api/service/TestAnnouncementsService.java @@ -3,8 +3,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import java.util.List; - import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.springframework.beans.factory.annotation.Autowired; @@ -14,40 +12,22 @@ import edu.hawaii.its.api.configuration.SpringBootWebApplication; import edu.hawaii.its.api.type.Announcements; -import edu.hawaii.its.api.wrapper.FindAttributesResults; @ActiveProfiles("integrationTest") @TestInstance(TestInstance.Lifecycle.PER_CLASS) @SpringBootTest(classes = { SpringBootWebApplication.class }) public class TestAnnouncementsService { - @Value("${groupings.api.announcements}") - private String ANNOUNCEMENTS_ATTR_NAME; - @Value("${groupings.api.propertystring}") - private String ANNOUNCEMENTS_ATTR_DEF; @Value("${groupings.api.success}") private String SUCCESS; @Autowired private AnnouncementsService announcementsService; - @Autowired - private GrouperApiService grouperApiService; @Test - public void setAnnouncements() { - FindAttributesResults findAttributesResults = grouperApiService.findAttributesResults( - ANNOUNCEMENTS_ATTR_DEF, - ANNOUNCEMENTS_ATTR_NAME); - assertNotNull(findAttributesResults.getResults()); - Announcements results = announcementsService.setAnnouncements(findAttributesResults.getResult()); - assertNotNull(results); - assertNotNull(results.getAnnouncements()); - assertEquals(SUCCESS, results.getResultCode()); + public void getAnnouncementsTest() { + Announcements announcements = announcementsService.getAnnouncements(); + assertNotNull(announcements); + assertNotNull(announcements.getAnnouncements()); + assertEquals(SUCCESS, announcements.getResultCode()); } - @Test - public void activeAnnouncements() { - List results = announcementsService.activeAnnouncements(); - // Only when Grouper has this case specific data (will need to keep updating). - assertNotNull(results); - assertEquals("Test is now running on VMs featuring Java 17 (hello Spring Boot3)", results.get(0)); - } } diff --git a/src/test/java/edu/hawaii/its/api/type/AnnouncementTest.java b/src/test/java/edu/hawaii/its/api/type/AnnouncementTest.java index 3bd35e089..c7a8aee6b 100644 --- a/src/test/java/edu/hawaii/its/api/type/AnnouncementTest.java +++ b/src/test/java/edu/hawaii/its/api/type/AnnouncementTest.java @@ -15,7 +15,7 @@ class AnnouncementTest { private LocalDateTime currentDateTime = LocalDateTime.now(); @BeforeEach - void setUp() { + public void setup() { // Expired - start and end date is before the current local date time. LocalDateTime start1 = LocalDateTime.parse("2023-06-07T00:00"); LocalDateTime end1 = LocalDateTime.parse("2023-06-15T00:00"); @@ -31,7 +31,7 @@ void setUp() { } @Test - void accessors() { + public void accessors() { assertNotNull(expiredAnnouncement); assertNotNull(activeAnnouncement); assertNotNull(futureAnnouncement); diff --git a/src/test/java/edu/hawaii/its/api/type/AnnouncementsTest.java b/src/test/java/edu/hawaii/its/api/type/AnnouncementsTest.java index c23f53029..d93c3ab7a 100644 --- a/src/test/java/edu/hawaii/its/api/type/AnnouncementsTest.java +++ b/src/test/java/edu/hawaii/its/api/type/AnnouncementsTest.java @@ -9,16 +9,16 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; + class AnnouncementsTest { - private Announcements emptyAnnouncements; private Announcements announcements; - private List announcementsList; + private Announcements emptyAnnouncements; + private List announcementList; private LocalDateTime currentDateTime = LocalDateTime.now(); @BeforeEach - void setUp() { + public void setup() { emptyAnnouncements = new Announcements(); - announcementsList = new ArrayList<>(); LocalDateTime start1 = LocalDateTime.parse("2023-06-07T00:00"); LocalDateTime end1 = LocalDateTime.parse("2023-06-15T00:00"); @@ -27,14 +27,15 @@ void setUp() { LocalDateTime start3 = currentDateTime.plusDays(5); LocalDateTime end3 = currentDateTime.plusDays(10); - announcementsList.add(new Announcement("old message", start1, end1)); - announcementsList.add(new Announcement("Test will be down for migration to new VMs featuring Java 17 (required for Spring Boot 3)", start2, end2)); - announcementsList.add(new Announcement("Test is now running on VMs featuring Java 17 (hello Spring Boot3)", start3, end3)); - announcements = new Announcements(announcementsList); + announcementList = new ArrayList<>(); + announcementList.add(new Announcement("old message", start1, end1)); + announcementList.add(new Announcement("Test will be down for migration to new VMs featuring Java 17 (required for Spring Boot 3)", start2, end2)); + announcementList.add(new Announcement("Test is now running on VMs featuring Java 17 (hello Spring Boot3)", start3, end3)); + announcements = new Announcements(announcementList); } @Test - void accessors() { + public void accessors() { // Constructed with no parameters, an empty and invalid Announcements object. assertNotNull(emptyAnnouncements); assertEquals(new ArrayList<>(), emptyAnnouncements.getAnnouncements()); @@ -42,25 +43,8 @@ void accessors() { // Constructed with parameters, a valid Announcements object. assertNotNull(announcements); - assertEquals(announcementsList, announcements.getAnnouncements()); + assertEquals(announcementList, announcements.getAnnouncements()); assertEquals("SUCCESS", announcements.getResultCode()); } - @Test - void validMessages() { - // Returns a List object when constructed empty. - assertNotNull(announcements.validMessages(announcementsList)); - - // Returns one valid message. - List expectedMessages = new ArrayList<>(); - expectedMessages.add("Test will be down for migration to new VMs featuring Java 17 (required for Spring Boot 3)"); - assertEquals(expectedMessages, announcements.validMessages(announcementsList)); - - // Returns all valid messages. - LocalDateTime start4 = currentDateTime.plusDays(-2); - LocalDateTime end4 = currentDateTime.plusDays(5); - announcementsList.add(new Announcement("second valid message", start4, end4)); - expectedMessages.add("second valid message"); - assertEquals(expectedMessages, announcements.validMessages(announcementsList)); - } }