From 40c04f5bc4e4c0cd04efae9708eb227550b0699d Mon Sep 17 00:00:00 2001 From: kasch309 Date: Thu, 12 Mar 2020 16:06:36 +0100 Subject: [PATCH 1/6] add href to group title, improve display of several groups --- src/main/resources/templates/index.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 05d423a..822ebf1 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -30,9 +30,12 @@
-

+

+ +

+
From c73cf2a87063a37b57178d7c6a64f592d8c9eced Mon Sep 17 00:00:00 2001 From: kasch309 Date: Thu, 12 Mar 2020 16:25:39 +0100 Subject: [PATCH 2/6] change color of submit button in search.html and create.html --- src/main/resources/templates/create.html | 6 ++---- src/main/resources/templates/search.html | 11 +---------- 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/src/main/resources/templates/create.html b/src/main/resources/templates/create.html index 5f28fb5..00908f0 100644 --- a/src/main/resources/templates/create.html +++ b/src/main/resources/templates/create.html @@ -35,12 +35,10 @@
- +
- +
diff --git a/src/main/resources/templates/search.html b/src/main/resources/templates/search.html index c722a7d..6efe4e7 100644 --- a/src/main/resources/templates/search.html +++ b/src/main/resources/templates/search.html @@ -35,16 +35,7 @@ -
- Öffentliche Gruppen - Private Gruppen -
- Suchbegriff im Namen - Suchbegriff in der Beschreibung - Suchbegriff in der Veranstaltung -
-
- +
From 430b52b417ac193f0fd72f6fa811873d00d7fcd1 Mon Sep 17 00:00:00 2001 From: killerber4t Date: Thu, 12 Mar 2020 16:48:08 +0100 Subject: [PATCH 3/6] add new Controller to redirect --- .../gruppen2/controller/Gruppen2Controller.java | 2 +- .../mops/gruppen2/controller/MopsController.java | 13 +++++++++++++ .../java/mops/gruppen2/service/UserService.java | 2 ++ src/main/resources/templates/create.html | 1 - 4 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 src/main/java/mops/gruppen2/controller/MopsController.java diff --git a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java index e7b5bf1..96ec538 100644 --- a/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java +++ b/src/main/java/mops/gruppen2/controller/Gruppen2Controller.java @@ -80,7 +80,7 @@ public class Gruppen2Controller { Account account = keyCloakService.createAccountFromPrincipal(token); controllerService.createGroup(account, title, beschreibung); - return "redirect:/gruppen2"; + return "redirect:/gruppen2/"; } } diff --git a/src/main/java/mops/gruppen2/controller/MopsController.java b/src/main/java/mops/gruppen2/controller/MopsController.java new file mode 100644 index 0000000..4989fab --- /dev/null +++ b/src/main/java/mops/gruppen2/controller/MopsController.java @@ -0,0 +1,13 @@ +package mops.gruppen2.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +public class MopsController { + + @GetMapping("") + public String redirect(){ + return "redirect:/gruppen2/"; + } +} diff --git a/src/main/java/mops/gruppen2/service/UserService.java b/src/main/java/mops/gruppen2/service/UserService.java index afa2c95..bfe8b37 100644 --- a/src/main/java/mops/gruppen2/service/UserService.java +++ b/src/main/java/mops/gruppen2/service/UserService.java @@ -19,6 +19,8 @@ public class UserService { this.groupService = groupService; } + //Test nötig?? + public List getUserGroups(String user_id) throws EventException { List group_ids = eventRepository.findGroup_idsWhereUser_id(user_id); List events = groupService.getGroupEvents(group_ids); diff --git a/src/main/resources/templates/create.html b/src/main/resources/templates/create.html index 5f28fb5..63668bc 100644 --- a/src/main/resources/templates/create.html +++ b/src/main/resources/templates/create.html @@ -36,7 +36,6 @@
From d3ba609e6ae5560064503b901a6332033cc803b5 Mon Sep 17 00:00:00 2001 From: killerber4t Date: Thu, 12 Mar 2020 16:54:42 +0100 Subject: [PATCH 4/6] fix ControllerTest --- .../java/mops/gruppen2/architecture/ControllerTest.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/test/java/mops/gruppen2/architecture/ControllerTest.java b/src/test/java/mops/gruppen2/architecture/ControllerTest.java index 8079fa8..238fa7a 100644 --- a/src/test/java/mops/gruppen2/architecture/ControllerTest.java +++ b/src/test/java/mops/gruppen2/architecture/ControllerTest.java @@ -37,14 +37,6 @@ public class ControllerTest { .that().resideInAPackage("..controller..") .should().haveSimpleNameEndingWith("Controller"); - @ArchTest - public static final ArchRule controllerClassesShouldHaveRequestMappingAnnotation = classes() - .that().resideInAPackage("..controller..") - .and().haveSimpleNameEndingWith("Controller") - .and().areAnnotatedWith(Controller.class) - .or().areAnnotatedWith(RestController.class) - .should().beAnnotatedWith(RequestMapping.class); - @ArchTest public static final ArchRule controllerClassesShouldNotDependOnEachOther = noClasses() .that().haveSimpleNameEndingWith("Controller") From 6b788beb4b4e0a92b652b330ac08c1bb19870bd3 Mon Sep 17 00:00:00 2001 From: XXNitram Date: Fri, 13 Mar 2020 13:46:34 +0100 Subject: [PATCH 5/6] Refactor ControllerService and add an UpdateRoleEvent to createGroup --- .../domain/event/UpdateRoleEvent.java | 4 +++ .../gruppen2/service/ControllerService.java | 29 +++++++++++++------ .../mops/gruppen2/service/EventService.java | 11 +++++++ 3 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/main/java/mops/gruppen2/domain/event/UpdateRoleEvent.java b/src/main/java/mops/gruppen2/domain/event/UpdateRoleEvent.java index a4301de..1627f08 100644 --- a/src/main/java/mops/gruppen2/domain/event/UpdateRoleEvent.java +++ b/src/main/java/mops/gruppen2/domain/event/UpdateRoleEvent.java @@ -15,7 +15,11 @@ public class UpdateRoleEvent extends Event { public UpdateRoleEvent(Long event_id, Long group_id, String user_id, Role newRole) { super(event_id, group_id, user_id); + this.newRole = newRole; + } + public UpdateRoleEvent(Long group_id, String user_id, Role newRole) { + super(group_id, user_id); this.newRole = newRole; } } diff --git a/src/main/java/mops/gruppen2/service/ControllerService.java b/src/main/java/mops/gruppen2/service/ControllerService.java index 75f0b78..10e0f7b 100644 --- a/src/main/java/mops/gruppen2/service/ControllerService.java +++ b/src/main/java/mops/gruppen2/service/ControllerService.java @@ -1,10 +1,12 @@ package mops.gruppen2.service; import mops.gruppen2.domain.GroupType; +import mops.gruppen2.domain.Role; import mops.gruppen2.domain.Visibility; import mops.gruppen2.domain.event.*; import mops.gruppen2.security.Account; import org.springframework.stereotype.Service; +import java.util.*; @Service public class ControllerService { @@ -15,15 +17,24 @@ public class ControllerService { this.eventService = eventService; } - public void createGroup(Account account, String title, String beschreibung) { - CreateGroupEvent createGroupEvent = new CreateGroupEvent(eventService.checkGroup(), account.getName(), null , GroupType.LECTURE, Visibility.PUBLIC); - AddUserEvent addUserEvent = new AddUserEvent(eventService.checkGroup(), account.getName(),account.getGivenname(),account.getFamilyname(),account.getEmail()); - UpdateGroupTitleEvent updateGroupTitleEvent = new UpdateGroupTitleEvent(eventService.checkGroup(), account.getName(), title); - UpdateGroupDescriptionEvent updateGroupDescriptionEvent = new UpdateGroupDescriptionEvent(eventService.checkGroup(), account.getName(), beschreibung); + /** + * Erzeugt eine neue Gruppe, fügt den User, der die Gruppe erstellt hat, hinzu und setzt seine Rolle als Admin fest. + * Zudem wird der Gruppentitel und die Gruppenbeschreibung erzeugt, welche vorher der Methode übergeben wurden. + * Aus diesen Event Objekten wird eine Liste erzeugt, welche daraufhin mithilfe des EventServices gesichert wird. + * + * @param account Keycloak-Account + * @param title Gruppentitel + * @param description Gruppenbeschreibung + */ + public void createGroup(Account account, String title, String description) { - eventService.saveEvent(createGroupEvent); - eventService.saveEvent(addUserEvent); - eventService.saveEvent(updateGroupTitleEvent); - eventService.saveEvent(updateGroupDescriptionEvent); + List eventList = new ArrayList<>(); + Collections.addAll(eventList, new CreateGroupEvent(eventService.checkGroup(), account.getName(), null , GroupType.LECTURE, Visibility.PUBLIC), + new AddUserEvent(eventService.checkGroup(), account.getName(),account.getGivenname(),account.getFamilyname(),account.getEmail()), + new UpdateRoleEvent(eventService.checkGroup(), account.getName(), Role.ADMIN), + new UpdateGroupTitleEvent(eventService.checkGroup(), account.getName(), title), + new UpdateGroupDescriptionEvent(eventService.checkGroup(), account.getName(), description)); + + eventService.saveEventList(eventList); } } diff --git a/src/main/java/mops/gruppen2/service/EventService.java b/src/main/java/mops/gruppen2/service/EventService.java index cb4a0c9..6007bc5 100644 --- a/src/main/java/mops/gruppen2/service/EventService.java +++ b/src/main/java/mops/gruppen2/service/EventService.java @@ -94,4 +94,15 @@ public class EventService { return events; } + /** + * Sichert eine Liste von Event Objekten mithilfe der Methode saveEvent(Event event) + * + * @param createGroupEvents Liste von Event Objekten + */ + public void saveEventList(List createGroupEvents) { + for(Event event : createGroupEvents) { + saveEvent(event); + } + } + } From 26f26a1c1a247a7a01724e898dbc194e2e1e3bca Mon Sep 17 00:00:00 2001 From: XXNitram Date: Fri, 13 Mar 2020 13:47:05 +0100 Subject: [PATCH 6/6] Add JavaDoc comments to SerializationService --- .../gruppen2/service/SerializationService.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/mops/gruppen2/service/SerializationService.java b/src/main/java/mops/gruppen2/service/SerializationService.java index 1737ccc..04a6d47 100644 --- a/src/main/java/mops/gruppen2/service/SerializationService.java +++ b/src/main/java/mops/gruppen2/service/SerializationService.java @@ -22,11 +22,25 @@ public class SerializationService { this.eventStore = eventStore; } + /** + * Übersetzt mithilfe der Jackson-Library eine Java-Event-Repräsentation zu einem JSON-Event-Payload. + * + * @param event Java-Event-Repräsentation + * @return JSON-Event-Payload als String + * @throws JsonProcessingException + */ public String serializeEvent(Event event) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); return mapper.writeValueAsString(event); } - + + /** + * Übersetzt mithilfe der Jackson-Library einen JSON-Event-Payload zu einer Java-Event-Repräsentation. + * + * @param json JSON-Event-Payload als String + * @return Java-Event-Repräsentation + * @throws JsonProcessingException + */ public Event deserializeEvent(String json) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); return mapper.readValue(json, Event.class);