diff --git a/src/main/java/mops/gruppen2/controller/APIController.java b/src/main/java/mops/gruppen2/controller/APIController.java index af2dbec..28ce4f5 100644 --- a/src/main/java/mops/gruppen2/controller/APIController.java +++ b/src/main/java/mops/gruppen2/controller/APIController.java @@ -36,7 +36,7 @@ public class APIController { @GetMapping("/updateGroups/{status}") @Secured("ROLE_api_user") @ApiOperation(value = "Gibt alle Gruppen zurück in denen sich etwas geändert hat") - public UpdatedGroupRequestMapper updateGroup(@ApiParam("Letzter Status des Anfragestellers") @PathVariable Long status) throws EventException { + public UpdatedGroupRequestMapper updateGroup(@ApiParam("Letzter Status des Anfragestellers") @PathVariable Long status) throws EventException { List events = eventService.getNewEvents(status); UpdatedGroupRequestMapper updatedGroupRequestMapper = APIFormatterService.wrapp(eventService.getMaxEvent_id(), groupService.projectEventList(events)); @@ -46,14 +46,14 @@ public class APIController { @GetMapping("/getGroupIdsOfUser/{teilnehmer}") @Secured("ROLE_api_user") @ApiOperation(value = "Gibt alle Gruppen zurück in denen sich ein Teilnehmer befindet") - public List getGroupsOfUser(@ApiParam("Teilnehmer dessen groupIds zurückgegeben werden sollen") @PathVariable String teilnehmer) throws EventException { + public List getGroupsOfUser(@ApiParam("Teilnehmer dessen groupIds zurückgegeben werden sollen") @PathVariable String teilnehmer) throws EventException { return eventService.getGroupsOfUser(teilnehmer); } @GetMapping("/getGroup/{groupId}") @Secured("ROLE_api_user") @ApiOperation(value = "Gibt die Gruppe mit der als Parameter mitgegebenden groupId zurück") - public Group getGroupFromId(@ApiParam("GruppenId der gefordeten Gruppe") @PathVariable Long groupId) throws EventException{ + public Group getGroupFromId(@ApiParam("GruppenId der gefordeten Gruppe") @PathVariable Long groupId) throws EventException { List eventList = eventService.getEventsOfGroup(groupId); List groups = groupService.projectEventList(eventList); diff --git a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java index 807e192..2bde657 100644 --- a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java +++ b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java @@ -55,17 +55,18 @@ public class Gruppen2Controller { * @param model tolles model * @return index.html */ - @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"}) + @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) @GetMapping("") public String index(KeycloakAuthenticationToken token, Model model) throws EventException { Account account = keyCloakService.createAccountFromPrincipal(token); User user = new User(account.getName(), account.getGivenname(), account.getFamilyname(), account.getEmail()); model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token)); model.addAttribute("gruppen", userService.getUserGroups(user)); - model.addAttribute("user",user); + model.addAttribute("user", user); return "index"; } + @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) @RolesAllowed({"ROLE_orga", "ROLE_actuator)"}) @GetMapping("/createLecture") public String createLecture(KeycloakAuthenticationToken token, Model model) { @@ -96,7 +97,7 @@ public class Gruppen2Controller { return "create"; } - @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"}) + @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) @GetMapping("/findGroup") public String findGroup(KeycloakAuthenticationToken token, Model model, @RequestParam(value = "suchbegriff", required = false) String suchbegriff) throws EventException { List groupse = new ArrayList<>(); @@ -108,6 +109,7 @@ public class Gruppen2Controller { return "search"; } + @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) @PostMapping("/createGroup") public String pCreateGroup(KeycloakAuthenticationToken token, @RequestParam(value = "title") String title, @@ -121,7 +123,7 @@ public class Gruppen2Controller { return "redirect:/gruppen2/"; } - @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"}) + @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) @GetMapping("/details") public String showGroupDetails(KeycloakAuthenticationToken token, Model model, @RequestParam(value = "id") Long id) throws EventException, ResponseStatusException { model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token)); @@ -136,16 +138,16 @@ public class Gruppen2Controller { throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Group not found"); } - @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"}) + @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) @PostMapping("/detailsBeitreten") public String joinGroup(KeycloakAuthenticationToken token, Model model, @RequestParam(value = "id") Long id) throws EventException { model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token)); - Account account = keyCloakService.createAccountFromPrincipal (token); - controllerService.addUser(account,id); + Account account = keyCloakService.createAccountFromPrincipal(token); + controllerService.addUser(account, id); return "redirect:/gruppen2/"; } - @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"}) + @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) @GetMapping("/detailsSearch") public String showGroupDetailsNoMember(KeycloakAuthenticationToken token, Model model, @RequestParam(value = "id") Long id) throws EventException { model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token)); @@ -157,7 +159,7 @@ public class Gruppen2Controller { throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Group not found"); } - @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"}) + @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) @GetMapping("/acceptinvite/{link}") public String acceptInvite(KeycloakAuthenticationToken token, Model model, @PathVariable String link) throws EventException { model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token)); @@ -168,11 +170,17 @@ public class Gruppen2Controller { } throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Group not found"); } - @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"}) + + @RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator"}) @PostMapping("/leaveGroup") - public String pLeaveGroup(KeycloakAuthenticationToken token, @RequestParam (value="group_id") Long id) { + public String pLeaveGroup(KeycloakAuthenticationToken token, @RequestParam(value = "group_id") Long id) { Account account = keyCloakService.createAccountFromPrincipal(token); controllerService.deleteUser(account, id); return "redirect:/gruppen2/"; } + + @GetMapping("*") + public String defaultLink() { + return "errorRenameLater"; + } } diff --git a/src/main/java/mops/gruppen2/controller/MopsController.java b/src/main/java/mops/gruppen2/controller/MopsController.java index 1c62f56..3e77224 100644 --- a/src/main/java/mops/gruppen2/controller/MopsController.java +++ b/src/main/java/mops/gruppen2/controller/MopsController.java @@ -9,7 +9,7 @@ import javax.servlet.http.HttpServletRequest; public class MopsController { @GetMapping("") - public String redirect(){ + public String redirect() { return "redirect:/gruppen2/"; } diff --git a/src/main/java/mops/gruppen2/repository/EventRepository.java b/src/main/java/mops/gruppen2/repository/EventRepository.java index 7b84ce0..f328fdf 100644 --- a/src/main/java/mops/gruppen2/repository/EventRepository.java +++ b/src/main/java/mops/gruppen2/repository/EventRepository.java @@ -30,4 +30,7 @@ public interface EventRepository extends CrudRepository { @Query("SELECT MAX(event_id) FROM event") public Long getHighesEvent_ID(); + + @Query("SELECT MAX(group_id) FROM event") + public Long getMaxGroupID(); } diff --git a/src/main/java/mops/gruppen2/service/EventService.java b/src/main/java/mops/gruppen2/service/EventService.java index f545456..7fd67e8 100644 --- a/src/main/java/mops/gruppen2/service/EventService.java +++ b/src/main/java/mops/gruppen2/service/EventService.java @@ -59,22 +59,17 @@ public class EventService { } /** - * Sorgt dafür die Group_id immer um 1 zu erhöhen + * Gibt die nächst höhere groupID zurück die belegt werden kann. + * Gibt 1 zurück, falls keine Gruppe vorhanden ist. * * @return Gibt Long zurück */ public Long checkGroup() { - Long tmpId = 1L; - Iterable eventDTOS = eventStore.findAll(); - for (EventDTO event : eventDTOS) { - if (event.getGroup_id() == null) { - return tmpId; - } - if (tmpId <= event.getGroup_id()) { - tmpId++; - } + Long maxGroupID = eventStore.getMaxGroupID(); + if (maxGroupID == null) { + return 1L; } - return tmpId; + return maxGroupID + 1; } /** diff --git a/src/test/java/mops/gruppen2/service/EventServiceTest.java b/src/test/java/mops/gruppen2/service/EventServiceTest.java index 122e219..c0cedb0 100644 --- a/src/test/java/mops/gruppen2/service/EventServiceTest.java +++ b/src/test/java/mops/gruppen2/service/EventServiceTest.java @@ -28,21 +28,6 @@ class EventServiceTest { eventService = new EventService(mock(SerializationService.class), eventRepositoryMock); } - @Test - void checkGroupTest() { - EventDTO eventDTO = new EventDTO(); - EventDTO eventDTO1 = new EventDTO(); - eventDTO1.setGroup_id(1L); - eventDTO.setUser_id("realer"); - eventDTO.setUser_id("faker"); - eventDTO.setGroup_id(0L); - List eventDTOS = new ArrayList<>(); - eventDTOS.add(eventDTO); - eventDTOS.add(eventDTO1); - when(eventRepositoryMock.findAll()).thenReturn(eventDTOS); - assertEquals(eventDTO1.getGroup_id() + 1, eventService.checkGroup()); - } - @Test void getMaxID() { when(eventRepositoryMock.getHighesEvent_ID()).thenReturn(42L); @@ -52,14 +37,7 @@ class EventServiceTest { @Test void checkGroupReturnNextValue() { - List eventDTOS = new ArrayList<>(); - EventDTO eventDTO1 = new EventDTO(); - EventDTO eventDTO2 = new EventDTO(); - eventDTO1.setGroup_id(1L); - eventDTO2.setGroup_id(2L); - eventDTOS.add(eventDTO1); - eventDTOS.add(eventDTO2); - when(eventRepositoryMock.findAll()).thenReturn(eventDTOS); + when(eventRepositoryMock.getMaxGroupID()).thenReturn(2L); assertEquals(eventService.checkGroup(), 3L); }