diff --git a/src/main/java/de/tinf22b6/dhbwhub/controller/EventController.java b/src/main/java/de/tinf22b6/dhbwhub/controller/EventController.java index 235a2012..197c6aed 100644 --- a/src/main/java/de/tinf22b6/dhbwhub/controller/EventController.java +++ b/src/main/java/de/tinf22b6/dhbwhub/controller/EventController.java @@ -38,6 +38,11 @@ public EventCommentThreadViewProposal getCommentThreadView(@PathVariable Long id return service.getEventCommentThreadView(id); } + @GetMapping("/calendar-events") + public List getCalendarEvents() { + return service.getCalendarEvents(); + } + @PostMapping("/create-event") public EventThreadViewProposal create(@RequestBody CreateEventPostProposal proposal) { return service.create(proposal); diff --git a/src/main/java/de/tinf22b6/dhbwhub/mapper/EventMapper.java b/src/main/java/de/tinf22b6/dhbwhub/mapper/EventMapper.java index 0aad4db8..fc93f4b7 100644 --- a/src/main/java/de/tinf22b6/dhbwhub/mapper/EventMapper.java +++ b/src/main/java/de/tinf22b6/dhbwhub/mapper/EventMapper.java @@ -81,17 +81,21 @@ public static EventThreadViewProposal mapToPostThreadViewProposal(EventPost post new LocationProposal(post.getLocation(), post.getLatitude(), post.getLongitude()), post.getLikes(), 0, - post.getTimestamp(), post.getStartdate(), post.getEnddate(), - post.getPicture() != null ? post.getPicture().getImageData() : null, - post.getUser() != null ? post.getUser().getAccount().getId() : null, - post.getUser() != null ? post.getUser().getAccount().getUsername(): null, - post.getUser().getAccount().getPicture() != null ? post.getUser().getAccount().getPicture().getImageData() : null, null ); } + public static CalendarEventProposal mapToCalendarEventProposal(EventPost post) { + return new CalendarEventProposal( + post.getId(), + post.getTitle(), + post.getStartdate(), + post.getEnddate() + ); + } + public static EventCommentThreadViewProposal mapToThreadView(EventComment comment) { return new EventCommentThreadViewProposal( comment.getEventPost() != null? comment.getEventPost().getId() : null, diff --git a/src/main/java/de/tinf22b6/dhbwhub/proposal/simplified_models/CalendarEventProposal.java b/src/main/java/de/tinf22b6/dhbwhub/proposal/simplified_models/CalendarEventProposal.java new file mode 100644 index 00000000..b24a7683 --- /dev/null +++ b/src/main/java/de/tinf22b6/dhbwhub/proposal/simplified_models/CalendarEventProposal.java @@ -0,0 +1,23 @@ + +package de.tinf22b6.dhbwhub.proposal.simplified_models; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.Date; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class CalendarEventProposal { + private Long eventId; + + private String title; + + private Date startDate; + + private Date endDate; +} diff --git a/src/main/java/de/tinf22b6/dhbwhub/proposal/simplified_models/EventThreadViewProposal.java b/src/main/java/de/tinf22b6/dhbwhub/proposal/simplified_models/EventThreadViewProposal.java index 5a6c1b58..58ac438e 100644 --- a/src/main/java/de/tinf22b6/dhbwhub/proposal/simplified_models/EventThreadViewProposal.java +++ b/src/main/java/de/tinf22b6/dhbwhub/proposal/simplified_models/EventThreadViewProposal.java @@ -27,19 +27,9 @@ public class EventThreadViewProposal { private int commentAmount; - private Date timestamp; + private Date startDate; - private Date startdate; - - private Date enddate; - - private byte[] postImage; - - private Long accountId; - - private String username; - - private byte[] userImage; + private Date endDate; private List comments; } diff --git a/src/main/java/de/tinf22b6/dhbwhub/service/EventServiceImpl.java b/src/main/java/de/tinf22b6/dhbwhub/service/EventServiceImpl.java index b8f7e173..ebfbd7c7 100644 --- a/src/main/java/de/tinf22b6/dhbwhub/service/EventServiceImpl.java +++ b/src/main/java/de/tinf22b6/dhbwhub/service/EventServiceImpl.java @@ -254,6 +254,11 @@ public int adjustCommentLikes(LikeEventCommentProposal likeEventCommentProposal, return repository.save(updatedComment).getLikes(); } + @Override + public List getCalendarEvents() { + return this.repository.findAllEventPosts().stream().map(EventMapper::mapToCalendarEventProposal).toList(); + } + @Override public List getEventComments(Long id) { return repository.getEventComments(id); diff --git a/src/main/java/de/tinf22b6/dhbwhub/service/interfaces/EventService.java b/src/main/java/de/tinf22b6/dhbwhub/service/interfaces/EventService.java index 2c6e54e0..adf76a91 100644 --- a/src/main/java/de/tinf22b6/dhbwhub/service/interfaces/EventService.java +++ b/src/main/java/de/tinf22b6/dhbwhub/service/interfaces/EventService.java @@ -26,4 +26,5 @@ public interface EventService { EventCommentThreadViewProposal getEventCommentThreadView(Long id); int adjustPostLikes(LikeEventPostProposal likeEventPostProposal, int i); int adjustCommentLikes(LikeEventCommentProposal likeEventCommentProposal, int i); + List getCalendarEvents(); } diff --git a/src/test/java/de/tinf22b6/dhbwhub/AbstractApplicationTest.java b/src/test/java/de/tinf22b6/dhbwhub/AbstractApplicationTest.java index 1c7b05d4..e8c64ee3 100644 --- a/src/test/java/de/tinf22b6/dhbwhub/AbstractApplicationTest.java +++ b/src/test/java/de/tinf22b6/dhbwhub/AbstractApplicationTest.java @@ -223,7 +223,11 @@ protected UpdateEventPostProposal createDefaultUpdateEventPostProposal() { } protected EventThreadViewProposal createDefaultEventThreadViewProposal() { - return new EventThreadViewProposal(1L, "Titel 1", "Beschreibung 1", List.of("Tag 1", "Tag 2"), createDefaultLocationProposal(), 0, 0, new Date(1478979207L), new Date(1478979208L), new Date(1478979209L), createDefaultPicture().getImageData(), 1L, "Maxi", createDefaultPicture2().getImageData(), List.of(createDefaultEventCommentThreadViewProposal(),createDefaultEventCommentThreadViewProposal())); + return new EventThreadViewProposal(1L, "Titel 1", "Beschreibung 1", List.of("Tag 1", "Tag 2"), createDefaultLocationProposal(), 0, 0, new Date(1478979208L), new Date(1478979209L), List.of(createDefaultEventCommentThreadViewProposal(),createDefaultEventCommentThreadViewProposal())); + } + + protected CalendarEventProposal createDefaultCalendarEventProposal() { + return new CalendarEventProposal(1L, "Titel 1", new Date(1478979208L), new Date(1478979209L)); } protected HomepageEventPreviewProposal createDefaultEventPostPreviewProposal() { diff --git a/src/test/java/de/tinf22b6/dhbwhub/controller/EventControllerTests.java b/src/test/java/de/tinf22b6/dhbwhub/controller/EventControllerTests.java index 0f77ed1f..fcfd67e8 100644 --- a/src/test/java/de/tinf22b6/dhbwhub/controller/EventControllerTests.java +++ b/src/test/java/de/tinf22b6/dhbwhub/controller/EventControllerTests.java @@ -53,6 +53,18 @@ void GetEventPreviewsHomepage_StatusIsOk() throws Exception { .andExpect(jsonPath("$", hasSize(2))); } + @Test + void GetCalendarEvents_StatusIsOk() throws Exception { + CalendarEventProposal calendarEventProposal = createDefaultCalendarEventProposal(); + when(eventService.getCalendarEvents()).thenReturn(List.of(calendarEventProposal, calendarEventProposal)); + + ResultActions response = mockMvc.perform(get("/event/calendar-events") + .contentType(MediaType.APPLICATION_JSON)); + + response.andExpect(status().isOk()) + .andExpect(jsonPath("$", hasSize(2))); + } + @Test void GetEventThreadView_StatusIsOk() throws Exception { EventThreadViewProposal eventThreadView = createDefaultEventThreadViewProposal(); diff --git a/src/test/java/de/tinf22b6/dhbwhub/service/EventServiceImplTests.java b/src/test/java/de/tinf22b6/dhbwhub/service/EventServiceImplTests.java index a95aabe3..3c5ffd5a 100644 --- a/src/test/java/de/tinf22b6/dhbwhub/service/EventServiceImplTests.java +++ b/src/test/java/de/tinf22b6/dhbwhub/service/EventServiceImplTests.java @@ -80,6 +80,20 @@ void GetHomepageEvents_HasSize_Two() { assertThat(eventService.getHomepageEvents()).hasSize(2); } + @Test + void GetCalendarEvents_IsEmpty() { + assertThat(eventService.getCalendarEvents()).isEmpty(); + } + + @Test + void GetCalendarEvents_HasSize_Two() { + EventPost post1 = createDefaultEventPost(); + EventPost post2 = createDefaultEventPost(); + when(eventRepository.findAllEventPosts()).thenReturn(List.of(post1, post2)); + + assertThat(eventService.getCalendarEvents()).hasSize(2); + } + @Test void GetEventThreadView_IsNotNull() { EventPost post = createDefaultEventPost();