From 9795c10c148dd0813e72ff29dd6868dc498a4856 Mon Sep 17 00:00:00 2001 From: LukasEttel Date: Thu, 12 Mar 2020 16:11:32 +0100 Subject: [PATCH] Impletended the updategroup(status) method in the API --- .../mops/gruppen2/Gruppen2Application.java | 2 +- .../gruppen2/controller/APIController.java | 10 +++++++-- .../apiWrapper/UpdatedGroupRequestMapper.java | 16 ++++++++++++++ .../gruppen2/repository/EventRepository.java | 7 ++++-- .../mops/gruppen2/service/APIFormatter.java | 12 ++++++++++ .../mops/gruppen2/service/EventService.java | 4 ++++ .../gruppen2/service/EventServiceTest.java | 22 ------------------- 7 files changed, 46 insertions(+), 27 deletions(-) create mode 100644 src/main/java/mops/gruppen2/domain/apiWrapper/UpdatedGroupRequestMapper.java create mode 100644 src/main/java/mops/gruppen2/service/APIFormatter.java diff --git a/src/main/java/mops/gruppen2/Gruppen2Application.java b/src/main/java/mops/gruppen2/Gruppen2Application.java index 8261158..8127e46 100644 --- a/src/main/java/mops/gruppen2/Gruppen2Application.java +++ b/src/main/java/mops/gruppen2/Gruppen2Application.java @@ -32,7 +32,7 @@ public class Gruppen2Application { public Docket productAPI() { return new Docket(DocumentationType.SWAGGER_2) .select() - .paths(PathSelectors.ant("/products/**")) + .paths(PathSelectors.ant("/gruppen2/**")) .apis(RequestHandlerSelectors.basePackage("mops.gruppen2")) .build() .apiInfo(apiMetadata()); diff --git a/src/main/java/mops/gruppen2/controller/APIController.java b/src/main/java/mops/gruppen2/controller/APIController.java index 832f6b3..940d7f1 100644 --- a/src/main/java/mops/gruppen2/controller/APIController.java +++ b/src/main/java/mops/gruppen2/controller/APIController.java @@ -1,13 +1,17 @@ package mops.gruppen2.controller; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import com.github.javafaker.Faker; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import mops.gruppen2.domain.Exceptions.EventException; import mops.gruppen2.domain.Group; import mops.gruppen2.domain.ProductSwaggerExample; +import mops.gruppen2.domain.apiWrapper.UpdatedGroupRequestMapper; import mops.gruppen2.domain.event.Event; +import mops.gruppen2.service.APIFormatter; import mops.gruppen2.service.EventService; import mops.gruppen2.service.GroupService; import mops.gruppen2.service.SerializationService; @@ -35,9 +39,11 @@ public class APIController { @GetMapping("/updatedGroups/{status}") @ApiOperation(value = "Gibt alle Gruppen zurück in denen sich etwas geändert hat") - public List updateGroup(@ApiParam("Status des Anfragestellers") @PathVariable Long status) throws EventException { + public UpdatedGroupRequestMapper updateGroup(@ApiParam("Status des Anfragestellers") @PathVariable Long status) throws EventException, JsonProcessingException { List events = eventService.getNewEvents(status); - return groupService.projectEventList(events); + UpdatedGroupRequestMapper updatedGroupRequestMapper = APIFormatter.wrapp(eventService.getMaxEvent_id(), groupService.projectEventList(events)); + + return updatedGroupRequestMapper; } diff --git a/src/main/java/mops/gruppen2/domain/apiWrapper/UpdatedGroupRequestMapper.java b/src/main/java/mops/gruppen2/domain/apiWrapper/UpdatedGroupRequestMapper.java new file mode 100644 index 0000000..ae9c4f3 --- /dev/null +++ b/src/main/java/mops/gruppen2/domain/apiWrapper/UpdatedGroupRequestMapper.java @@ -0,0 +1,16 @@ +package mops.gruppen2.domain.apiWrapper; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import mops.gruppen2.domain.Group; + +import java.util.List; + +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class UpdatedGroupRequestMapper { + private Long status; + private List groupList; +} diff --git a/src/main/java/mops/gruppen2/repository/EventRepository.java b/src/main/java/mops/gruppen2/repository/EventRepository.java index d518286..04112ae 100644 --- a/src/main/java/mops/gruppen2/repository/EventRepository.java +++ b/src/main/java/mops/gruppen2/repository/EventRepository.java @@ -10,9 +10,12 @@ import java.util.List; @Repository public interface EventRepository extends CrudRepository { - @Query("SELECT * FROM event WHERE event_id > @status") + @Query("SELECT * FROM event WHERE event_id > :status") public Iterable findNewEventSinceStatus(@Param("status") Long status); - @Query("SELECT * FROM event WHERE group_id IN @groupIds ") + @Query("SELECT * FROM event WHERE group_id IN (:groupIds) ") public Iterable findAllEventsOfGroups(@Param("groupIds") List groupIds); + + @Query("SELECT MAX(event_id) FROM event") + public Long getHighesEvent_ID(); } diff --git a/src/main/java/mops/gruppen2/service/APIFormatter.java b/src/main/java/mops/gruppen2/service/APIFormatter.java new file mode 100644 index 0000000..c18c6e9 --- /dev/null +++ b/src/main/java/mops/gruppen2/service/APIFormatter.java @@ -0,0 +1,12 @@ +package mops.gruppen2.service; + +import mops.gruppen2.domain.Group; +import mops.gruppen2.domain.apiWrapper.UpdatedGroupRequestMapper; + +import java.util.List; + +public class APIFormatter { + static public UpdatedGroupRequestMapper wrapp(Long status, List groupList){ + return new UpdatedGroupRequestMapper(status, groupList); + } +} diff --git a/src/main/java/mops/gruppen2/service/EventService.java b/src/main/java/mops/gruppen2/service/EventService.java index 4da92dd..1552a5b 100644 --- a/src/main/java/mops/gruppen2/service/EventService.java +++ b/src/main/java/mops/gruppen2/service/EventService.java @@ -87,4 +87,8 @@ public class EventService { return idsOfChangedGroups; } + public Long getMaxEvent_id(){ + return eventStore.getHighesEvent_ID(); + } + } diff --git a/src/test/java/mops/gruppen2/service/EventServiceTest.java b/src/test/java/mops/gruppen2/service/EventServiceTest.java index 159bcf1..77a2b7b 100644 --- a/src/test/java/mops/gruppen2/service/EventServiceTest.java +++ b/src/test/java/mops/gruppen2/service/EventServiceTest.java @@ -38,26 +38,4 @@ class EventServiceTest { when(eventRepositoryMock.findAll()).thenReturn(eventDTOS); assertEquals(eventDTO1.getGroup_id()+1, eventService.checkGroup()); } - - @Test - void checkGetAllGroupIdsWithRepeadedId(){ - ArrayList eventDTOS = new ArrayList<>(); - - EventDTO eventDTO1 = new EventDTO(); - eventDTO1.setGroup_id(1L); - eventDTOS.add(eventDTO1); - - EventDTO eventDTO2 = new EventDTO(); - eventDTO2.setGroup_id(2L); - eventDTOS.add(eventDTO2); - - EventDTO eventDTO3 = new EventDTO(); - eventDTO3.setGroup_id(1L); - eventDTOS.add(eventDTO3); - - List groupIds = eventService.getAllGroupIds(eventDTOS); - - assertThat(groupIds.size()).isEqualTo(2); - - } } \ No newline at end of file