From 6b788beb4b4e0a92b652b330ac08c1bb19870bd3 Mon Sep 17 00:00:00 2001 From: XXNitram Date: Fri, 13 Mar 2020 13:46:34 +0100 Subject: [PATCH] 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); + } + } + }