From ddfd21c6effadce45a59139195c6529ee80d4338 Mon Sep 17 00:00:00 2001 From: tomvahl Date: Wed, 25 Mar 2020 13:44:08 +0100 Subject: [PATCH 1/3] add MaxMemberException Co-Authored-By: andibuls Co-Authored-By: Lukas Ettel --- .../domain/exception/NoMaximumMemberException.java | 10 ++++++++++ .../mops/gruppen2/service/ControllerService.java | 13 ++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 src/main/java/mops/gruppen2/domain/exception/NoMaximumMemberException.java diff --git a/src/main/java/mops/gruppen2/domain/exception/NoMaximumMemberException.java b/src/main/java/mops/gruppen2/domain/exception/NoMaximumMemberException.java new file mode 100644 index 0000000..0ec684d --- /dev/null +++ b/src/main/java/mops/gruppen2/domain/exception/NoMaximumMemberException.java @@ -0,0 +1,10 @@ +package mops.gruppen2.domain.exception; + +import org.springframework.http.HttpStatus; + +public class NoMaximumMemberException extends EventException { + + public NoMaximumMemberException(String info) { + super(HttpStatus.INTERNAL_SERVER_ERROR, "Es wurde keine maximale Gruppenanzahl festgelegt", info); + } +} diff --git a/src/main/java/mops/gruppen2/service/ControllerService.java b/src/main/java/mops/gruppen2/service/ControllerService.java index 694a696..334c5b5 100644 --- a/src/main/java/mops/gruppen2/service/ControllerService.java +++ b/src/main/java/mops/gruppen2/service/ControllerService.java @@ -15,6 +15,7 @@ import mops.gruppen2.domain.event.UpdateGroupTitleEvent; import mops.gruppen2.domain.event.UpdateRoleEvent; import mops.gruppen2.domain.event.UpdateUserMaxEvent; import mops.gruppen2.domain.exception.EventException; +import mops.gruppen2.domain.exception.NoMaximumMemberException; import mops.gruppen2.domain.exception.UserNotFoundException; import mops.gruppen2.domain.exception.WrongFileException; import mops.gruppen2.security.Account; @@ -78,9 +79,13 @@ public class ControllerService { public void createOrga(Account account, String title, String description, Boolean visibility, Boolean lecture, Boolean maxInfiniteUsers, Long userMaximum, UUID parent, MultipartFile file) throws EventException, IOException { List userList = new ArrayList<>(); - if (userMaximum == null) { + maxInfiniteUsers = maxInfiniteUsers != null; + if(maxInfiniteUsers){ userMaximum = 100000L; } + if (userMaximum == null) { + throw new NoMaximumMemberException(this.getClass().toString()); + } if (!file.isEmpty()) { try { userList = CsvService.read(file.getInputStream()); @@ -94,7 +99,6 @@ public class ControllerService { } visibility = visibility == null; lecture = lecture != null; - maxInfiniteUsers = maxInfiniteUsers != null; Visibility visibility1; UUID groupId = eventService.checkGroup(); if (visibility) { @@ -110,11 +114,6 @@ public class ControllerService { groupType = GroupType.SIMPLE; } - - if(maxInfiniteUsers){ - userMaximum = 100000L; - } - CreateGroupEvent createGroupEvent = new CreateGroupEvent(groupId, account.getName(), parent, groupType, visibility1, userMaximum); eventService.saveEvent(createGroupEvent); From be37fcbd508a1f5561758a0dc12fa0956c1721fb Mon Sep 17 00:00:00 2001 From: tomvahl Date: Wed, 25 Mar 2020 14:40:59 +0100 Subject: [PATCH 2/3] add Exceptions Co-Authored-By: andibuls Co-Authored-By: Lukas Ettel --- .../gruppen2/controller/WebController.java | 3 -- .../exception/BadParameterException.java | 10 +++++ .../exception/NoMaximumMemberException.java | 10 ----- .../gruppen2/service/ControllerService.java | 42 +++++++++++++++---- 4 files changed, 44 insertions(+), 21 deletions(-) create mode 100644 src/main/java/mops/gruppen2/domain/exception/BadParameterException.java delete mode 100644 src/main/java/mops/gruppen2/domain/exception/NoMaximumMemberException.java diff --git a/src/main/java/mops/gruppen2/controller/WebController.java b/src/main/java/mops/gruppen2/controller/WebController.java index e8f9248..69f96ee 100644 --- a/src/main/java/mops/gruppen2/controller/WebController.java +++ b/src/main/java/mops/gruppen2/controller/WebController.java @@ -120,11 +120,8 @@ public class WebController { @RequestParam(value = "parent", required = false) String parent) throws EventException { Account account = keyCloakService.createAccountFromPrincipal(token); - visibility = visibility == null; - maxInfiniteUsers = maxInfiniteUsers != null; UUID parentUUID = controllerService.getUUID(parent); controllerService.createGroup(account, title, description, visibility, maxInfiniteUsers, userMaximum, parentUUID); - return "redirect:/gruppen2/"; } diff --git a/src/main/java/mops/gruppen2/domain/exception/BadParameterException.java b/src/main/java/mops/gruppen2/domain/exception/BadParameterException.java new file mode 100644 index 0000000..b1767d2 --- /dev/null +++ b/src/main/java/mops/gruppen2/domain/exception/BadParameterException.java @@ -0,0 +1,10 @@ +package mops.gruppen2.domain.exception; + +import org.springframework.http.HttpStatus; + +public class BadParameterException extends EventException { + + public BadParameterException(String info) { + super(HttpStatus.INTERNAL_SERVER_ERROR, "Fehlerhafter Parameter angegeben!", info); + } +} diff --git a/src/main/java/mops/gruppen2/domain/exception/NoMaximumMemberException.java b/src/main/java/mops/gruppen2/domain/exception/NoMaximumMemberException.java deleted file mode 100644 index 0ec684d..0000000 --- a/src/main/java/mops/gruppen2/domain/exception/NoMaximumMemberException.java +++ /dev/null @@ -1,10 +0,0 @@ -package mops.gruppen2.domain.exception; - -import org.springframework.http.HttpStatus; - -public class NoMaximumMemberException extends EventException { - - public NoMaximumMemberException(String info) { - super(HttpStatus.INTERNAL_SERVER_ERROR, "Es wurde keine maximale Gruppenanzahl festgelegt", info); - } -} diff --git a/src/main/java/mops/gruppen2/service/ControllerService.java b/src/main/java/mops/gruppen2/service/ControllerService.java index 334c5b5..bd38ce7 100644 --- a/src/main/java/mops/gruppen2/service/ControllerService.java +++ b/src/main/java/mops/gruppen2/service/ControllerService.java @@ -15,7 +15,7 @@ import mops.gruppen2.domain.event.UpdateGroupTitleEvent; import mops.gruppen2.domain.event.UpdateRoleEvent; import mops.gruppen2.domain.event.UpdateUserMaxEvent; import mops.gruppen2.domain.exception.EventException; -import mops.gruppen2.domain.exception.NoMaximumMemberException; +import mops.gruppen2.domain.exception.BadParameterException; import mops.gruppen2.domain.exception.UserNotFoundException; import mops.gruppen2.domain.exception.WrongFileException; import mops.gruppen2.security.Account; @@ -54,20 +54,37 @@ public class ControllerService { * @param title Gruppentitel * @param description Gruppenbeschreibung */ - public void createGroup(Account account, String title, String description, Boolean maxInfiniteUsers, Boolean visibility, Long userMaximum, UUID parent) throws EventException { + public void createGroup(Account account, String title, String description, Boolean visibility, Boolean maxInfiniteUsers, Long userMaximum, UUID parent) throws EventException { Visibility visibility1; UUID groupId = eventService.checkGroup(); + maxInfiniteUsers = maxInfiniteUsers != null; + + + if(maxInfiniteUsers) { + userMaximum = 100000L; + } + + if(description == null) { + throw new BadParameterException("Die Beschreibung wurde nicht korrekt angegeben"); + } + + if(title == null) { + throw new BadParameterException("Der Titel wurde nicht korrekt angegeben"); + } + + if (userMaximum == null) { + throw new BadParameterException("Teilnehmeranzahl wurde nicht korrekt angegeben"); + } + + visibility = visibility == null; + if (visibility) { visibility1 = Visibility.PUBLIC; } else { visibility1 = Visibility.PRIVATE; } - if(maxInfiniteUsers){ - userMaximum = 100000L; - } - CreateGroupEvent createGroupEvent = new CreateGroupEvent(groupId, account.getName(), parent, GroupType.SIMPLE, visibility1, userMaximum); eventService.saveEvent(createGroupEvent); @@ -80,11 +97,20 @@ public class ControllerService { public void createOrga(Account account, String title, String description, Boolean visibility, Boolean lecture, Boolean maxInfiniteUsers, Long userMaximum, UUID parent, MultipartFile file) throws EventException, IOException { List userList = new ArrayList<>(); maxInfiniteUsers = maxInfiniteUsers != null; - if(maxInfiniteUsers){ + if(maxInfiniteUsers) { userMaximum = 100000L; } + + if(description == null) { + throw new BadParameterException("Die Beschreibung wurde nicht korrekt angegeben"); + } + + if(title == null) { + throw new BadParameterException("Der Titel wurde nicht korrekt angegeben"); + } + if (userMaximum == null) { - throw new NoMaximumMemberException(this.getClass().toString()); + throw new BadParameterException("Teilnehmeranzahl wurde nicht korrekt angegeben"); } if (!file.isEmpty()) { try { From d703b1f255d35cc8e36bd4781d67eeb9740c454b Mon Sep 17 00:00:00 2001 From: tomvahl Date: Wed, 25 Mar 2020 14:47:46 +0100 Subject: [PATCH 3/3] refactor Exceptions Co-Authored-By: andibuls Co-Authored-By: Lukas Ettel --- .../gruppen2/service/ControllerService.java | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/src/main/java/mops/gruppen2/service/ControllerService.java b/src/main/java/mops/gruppen2/service/ControllerService.java index bd38ce7..1e57d6d 100644 --- a/src/main/java/mops/gruppen2/service/ControllerService.java +++ b/src/main/java/mops/gruppen2/service/ControllerService.java @@ -45,6 +45,26 @@ public class ControllerService { this.logger = Logger.getLogger("controllerServiceLogger"); } + /** + * Überprüft ob alle Felder richtig gesetzt sind. + * @param description + * @param title + * @param userMaximum + */ + private void checkFields(String description, String title, Long userMaximum ) { + if(description == null) { + throw new BadParameterException("Die Beschreibung wurde nicht korrekt angegeben"); + } + + if(title == null) { + throw new BadParameterException("Der Titel wurde nicht korrekt angegeben"); + } + + if (userMaximum == null) { + throw new BadParameterException("Teilnehmeranzahl wurde nicht korrekt angegeben"); + } + } + /** * 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. @@ -65,17 +85,7 @@ public class ControllerService { userMaximum = 100000L; } - if(description == null) { - throw new BadParameterException("Die Beschreibung wurde nicht korrekt angegeben"); - } - - if(title == null) { - throw new BadParameterException("Der Titel wurde nicht korrekt angegeben"); - } - - if (userMaximum == null) { - throw new BadParameterException("Teilnehmeranzahl wurde nicht korrekt angegeben"); - } + checkFields(description, title, userMaximum); visibility = visibility == null; @@ -101,17 +111,8 @@ public class ControllerService { userMaximum = 100000L; } - if(description == null) { - throw new BadParameterException("Die Beschreibung wurde nicht korrekt angegeben"); - } + checkFields(description, title, userMaximum); - if(title == null) { - throw new BadParameterException("Der Titel wurde nicht korrekt angegeben"); - } - - if (userMaximum == null) { - throw new BadParameterException("Teilnehmeranzahl wurde nicht korrekt angegeben"); - } if (!file.isEmpty()) { try { userList = CsvService.read(file.getInputStream());