From 22caf9ad8380c632577850eb8bc715899948b647 Mon Sep 17 00:00:00 2001 From: Christoph Date: Sun, 12 Apr 2020 18:38:07 +0200 Subject: [PATCH] fix pmd warnings --- build.gradle | 43 +++++++++---------- config/pmd/ruleset.xml | 6 +-- gruppe.yml | 20 --------- .../java/mops/gruppen2/aspect/LogAspect.java | 2 +- .../gruppen2/aspect/annotation/Trace.java | 2 +- .../aspect/annotation/TraceExecutionTime.java | 2 +- .../aspect/annotation/TraceMethodCall.java | 2 +- .../aspect/annotation/TraceMethodCalls.java | 2 +- .../APIService.java => helper/APIHelper.java} | 8 ++-- .../CsvService.java => helper/CsvHelper.java} | 8 ++-- .../IdService.java => helper/IdHelper.java} | 10 ++--- .../JsonHelper.java} | 12 +++--- .../ValidationHelper.java} | 8 ++-- .../domain/service/EventStoreService.java | 8 ++-- .../gruppen2/domain/service/GroupService.java | 25 +++++------ .../domain/service/ProjectionService.java | 5 ++- .../java/mops/gruppen2/web/APIController.java | 10 ++--- .../gruppen2/web/GroupCreationController.java | 12 +++--- .../gruppen2/web/GroupDetailsController.java | 24 +++++------ .../web/SearchAndInviteController.java | 4 +- .../mops/gruppen2/web/form/CreateForm.java | 4 +- .../domain/service/ControllerServiceTest.java | 3 +- .../domain/service/GroupServiceTest.java | 3 +- 23 files changed, 98 insertions(+), 125 deletions(-) delete mode 100644 gruppe.yml rename src/main/java/mops/gruppen2/domain/{service/APIService.java => helper/APIHelper.java} (67%) rename src/main/java/mops/gruppen2/domain/{service/CsvService.java => helper/CsvHelper.java} (90%) rename src/main/java/mops/gruppen2/domain/{service/IdService.java => helper/IdHelper.java} (85%) rename src/main/java/mops/gruppen2/domain/{service/JsonService.java => helper/JsonHelper.java} (76%) rename src/main/java/mops/gruppen2/domain/{service/ValidationService.java => helper/ValidationHelper.java} (95%) diff --git a/build.gradle b/build.gradle index dcadb41..c13c146 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,9 @@ -import com.github.spotbugs.SpotBugsTask - plugins { id 'org.springframework.boot' version '2.2.5.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id 'java' - id 'com.github.spotbugs' version '3.0.0' + id 'com.github.spotbugs' version '4.0.1' id 'checkstyle' id 'pmd' } @@ -14,30 +12,39 @@ group = 'mops' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' +repositories { + maven { + url = 'https://s3.cs.hhu.de/public/mops/' + metadataSources { + artifact() + } + } + mavenCentral() +} + spotbugs { + toolVersion = '4.0.1' ignoreFailures = false reportLevel = "high" effort = "max" - toolVersion = '4.0.0-RC1' + showProgress = true } -tasks.withType(SpotBugsTask) { +spotbugsMain { reports { - xml.enabled = false - html.enabled = true + html { + enabled = true + } } } pmd { consoleOutput = true ignoreFailures = true - toolVersion = "6.21.0" + toolVersion = "6.22.0" rulePriority = 5 - ruleSets = ["category/java/errorprone.xml", - "category/java/bestpractices.xml", - "category/java/security.xml", - "category/java/performance.xml", - "category/java/design.xml"] + ruleSetFiles = files("config/pmd/ruleset.xml") + ruleSets = [] } checkstyle { @@ -56,16 +63,6 @@ configurations { } } -repositories { - maven { - url = 'https://s3.cs.hhu.de/public/mops/' - metadataSources { - artifact() - } - } - mavenCentral() -} - dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'org.springframework.boot:spring-boot-starter-data-jdbc' diff --git a/config/pmd/ruleset.xml b/config/pmd/ruleset.xml index 0030346..7d0be0d 100644 --- a/config/pmd/ruleset.xml +++ b/config/pmd/ruleset.xml @@ -19,7 +19,7 @@ - + @@ -150,7 +150,7 @@ - + @@ -298,7 +298,7 @@ - + diff --git a/gruppe.yml b/gruppe.yml deleted file mode 100644 index ccf3b42..0000000 --- a/gruppe.yml +++ /dev/null @@ -1,20 +0,0 @@ -# Bei "schicht" können Sie 'vormittags', 'nachmittags' oder 'egal' eintragen. - -gruppe: IT-Bois -url: https://github.com/hhu-propra2/abschlussprojekt-it-bois -names: - - killerber4t - - tomvahl - - AndiBuls - - XXNitram - - LukasEttel - - Mahgs - - ChUrl - - kasch309 -notebook: true -schicht: nachmittags -projektauswahl: - - Gruppenbildung - - Punkteübersicht - - Materialsammlung - - Korrektorinnen Bewerbung diff --git a/src/main/java/mops/gruppen2/aspect/LogAspect.java b/src/main/java/mops/gruppen2/aspect/LogAspect.java index a040ee7..64a3a13 100644 --- a/src/main/java/mops/gruppen2/aspect/LogAspect.java +++ b/src/main/java/mops/gruppen2/aspect/LogAspect.java @@ -55,7 +55,7 @@ public class LogAspect { joinPoint.proceed(); long stop = System.currentTimeMillis(); - log.trace("Ausführungsdauer: {} Millis", (stop - start)); + log.trace("Ausführungsdauer: {} Millis", stop - start); return joinPoint.proceed(); } diff --git a/src/main/java/mops/gruppen2/aspect/annotation/Trace.java b/src/main/java/mops/gruppen2/aspect/annotation/Trace.java index 58dafeb..94e6254 100644 --- a/src/main/java/mops/gruppen2/aspect/annotation/Trace.java +++ b/src/main/java/mops/gruppen2/aspect/annotation/Trace.java @@ -6,7 +6,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** - * Schreibt eine benutzerdefinierte Nachricht in den Trace-Stream bei Methodenaufruf + * Schreibt eine benutzerdefinierte Nachricht in den Trace-Stream bei Methodenaufruf. */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/java/mops/gruppen2/aspect/annotation/TraceExecutionTime.java b/src/main/java/mops/gruppen2/aspect/annotation/TraceExecutionTime.java index 52b71f1..8c5677c 100644 --- a/src/main/java/mops/gruppen2/aspect/annotation/TraceExecutionTime.java +++ b/src/main/java/mops/gruppen2/aspect/annotation/TraceExecutionTime.java @@ -7,7 +7,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** - * Schreibt die Methodenausführdauer in den Trace-Stream + * Schreibt die Methodenausführdauer in den Trace-Stream. */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/java/mops/gruppen2/aspect/annotation/TraceMethodCall.java b/src/main/java/mops/gruppen2/aspect/annotation/TraceMethodCall.java index 5ee3096..fe971f1 100644 --- a/src/main/java/mops/gruppen2/aspect/annotation/TraceMethodCall.java +++ b/src/main/java/mops/gruppen2/aspect/annotation/TraceMethodCall.java @@ -6,7 +6,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** - * Schreibt eine Nachricht bei Methodenausführung in den Trace-Stream + * Schreibt eine Nachricht bei Methodenausführung in den Trace-Stream. */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/java/mops/gruppen2/aspect/annotation/TraceMethodCalls.java b/src/main/java/mops/gruppen2/aspect/annotation/TraceMethodCalls.java index c71066c..176a8a4 100644 --- a/src/main/java/mops/gruppen2/aspect/annotation/TraceMethodCalls.java +++ b/src/main/java/mops/gruppen2/aspect/annotation/TraceMethodCalls.java @@ -6,7 +6,7 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** - * Schreibt eine Nachricht für jede ausgeführte Methode einer Klasse in den Trace-Stream + * Schreibt eine Nachricht für jede ausgeführte Methode einer Klasse in den Trace-Stream. */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/java/mops/gruppen2/domain/service/APIService.java b/src/main/java/mops/gruppen2/domain/helper/APIHelper.java similarity index 67% rename from src/main/java/mops/gruppen2/domain/service/APIService.java rename to src/main/java/mops/gruppen2/domain/helper/APIHelper.java index 076f0db..c45c57b 100644 --- a/src/main/java/mops/gruppen2/domain/service/APIService.java +++ b/src/main/java/mops/gruppen2/domain/helper/APIHelper.java @@ -1,17 +1,15 @@ -package mops.gruppen2.domain.service; +package mops.gruppen2.domain.helper; import lombok.extern.log4j.Log4j2; import mops.gruppen2.domain.Group; import mops.gruppen2.web.api.GroupRequestWrapper; -import org.springframework.stereotype.Service; import java.util.List; -@Service @Log4j2 -public class APIService { +public final class APIHelper { - private APIService() {} + private APIHelper() {} public static GroupRequestWrapper wrap(long status, List groupList) { return new GroupRequestWrapper(status, groupList); diff --git a/src/main/java/mops/gruppen2/domain/service/CsvService.java b/src/main/java/mops/gruppen2/domain/helper/CsvHelper.java similarity index 90% rename from src/main/java/mops/gruppen2/domain/service/CsvService.java rename to src/main/java/mops/gruppen2/domain/helper/CsvHelper.java index 3e5a841..dab5c04 100644 --- a/src/main/java/mops/gruppen2/domain/service/CsvService.java +++ b/src/main/java/mops/gruppen2/domain/helper/CsvHelper.java @@ -1,4 +1,4 @@ -package mops.gruppen2.domain.service; +package mops.gruppen2.domain.helper; import com.fasterxml.jackson.databind.ObjectReader; import com.fasterxml.jackson.dataformat.csv.CsvMapper; @@ -7,7 +7,6 @@ import lombok.extern.log4j.Log4j2; import mops.gruppen2.domain.User; import mops.gruppen2.domain.exception.EventException; import mops.gruppen2.domain.exception.WrongFileException; -import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @@ -16,11 +15,10 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -@Service @Log4j2 -public final class CsvService { +public final class CsvHelper { - private CsvService() {} + private CsvHelper() {} public static List readCsvFile(MultipartFile file) throws EventException { if (file == null || file.isEmpty()) { diff --git a/src/main/java/mops/gruppen2/domain/service/IdService.java b/src/main/java/mops/gruppen2/domain/helper/IdHelper.java similarity index 85% rename from src/main/java/mops/gruppen2/domain/service/IdService.java rename to src/main/java/mops/gruppen2/domain/helper/IdHelper.java index e7b9ce7..e8e4f32 100644 --- a/src/main/java/mops/gruppen2/domain/service/IdService.java +++ b/src/main/java/mops/gruppen2/domain/helper/IdHelper.java @@ -1,21 +1,19 @@ -package mops.gruppen2.domain.service; +package mops.gruppen2.domain.helper; import lombok.extern.log4j.Log4j2; -import org.springframework.stereotype.Service; import java.util.List; import java.util.UUID; import java.util.stream.Collectors; -@Service @Log4j2 -public final class IdService { +public final class IdHelper { - private IdService() {} + private IdHelper() {} public static List stringsToUUID(List groupIds) { return groupIds.stream() - .map(IdService::stringToUUID) + .map(IdHelper::stringToUUID) .collect(Collectors.toList()); } diff --git a/src/main/java/mops/gruppen2/domain/service/JsonService.java b/src/main/java/mops/gruppen2/domain/helper/JsonHelper.java similarity index 76% rename from src/main/java/mops/gruppen2/domain/service/JsonService.java rename to src/main/java/mops/gruppen2/domain/helper/JsonHelper.java index f8711d5..d4a5fa9 100644 --- a/src/main/java/mops/gruppen2/domain/service/JsonService.java +++ b/src/main/java/mops/gruppen2/domain/helper/JsonHelper.java @@ -1,19 +1,17 @@ -package mops.gruppen2.domain.service; +package mops.gruppen2.domain.helper; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.log4j.Log4j2; import mops.gruppen2.domain.event.Event; -import org.springframework.stereotype.Service; /** * Übersetzt JSON-Event-Payloads zu Java-Event-Repräsentationen und zurück. */ -@Service @Log4j2 -public final class JsonService { +public final class JsonHelper { - private JsonService() {} + private JsonHelper() {} /** * Übersetzt eine Java-Event-Repräsentation zu einem JSON-Event-Payload. @@ -25,7 +23,7 @@ public final class JsonService { * @throws JsonProcessingException Bei JSON Fehler */ - static String serializeEvent(Event event) throws JsonProcessingException { + public static String serializeEvent(Event event) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); return mapper.writeValueAsString(event); } @@ -39,7 +37,7 @@ public final class JsonService { * * @throws JsonProcessingException Bei JSON Fehler */ - static Event deserializeEvent(String json) throws JsonProcessingException { + public static Event deserializeEvent(String json) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); return mapper.readValue(json, Event.class); } diff --git a/src/main/java/mops/gruppen2/domain/service/ValidationService.java b/src/main/java/mops/gruppen2/domain/helper/ValidationHelper.java similarity index 95% rename from src/main/java/mops/gruppen2/domain/service/ValidationService.java rename to src/main/java/mops/gruppen2/domain/helper/ValidationHelper.java index 9c9d7b0..6766ce7 100644 --- a/src/main/java/mops/gruppen2/domain/service/ValidationService.java +++ b/src/main/java/mops/gruppen2/domain/helper/ValidationHelper.java @@ -1,4 +1,4 @@ -package mops.gruppen2.domain.service; +package mops.gruppen2.domain.helper; import lombok.extern.log4j.Log4j2; import mops.gruppen2.domain.Group; @@ -12,15 +12,13 @@ import mops.gruppen2.domain.exception.UserAlreadyExistsException; import mops.gruppen2.domain.exception.UserNotFoundException; import mops.gruppen2.web.form.CreateForm; import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken; -import org.springframework.stereotype.Service; import static mops.gruppen2.domain.Role.ADMIN; -@Service @Log4j2 -public final class ValidationService { +public final class ValidationHelper { - private ValidationService() {} + private ValidationHelper() {} // ######################################## CHECK ############################################ diff --git a/src/main/java/mops/gruppen2/domain/service/EventStoreService.java b/src/main/java/mops/gruppen2/domain/service/EventStoreService.java index e4de549..e0d47cf 100644 --- a/src/main/java/mops/gruppen2/domain/service/EventStoreService.java +++ b/src/main/java/mops/gruppen2/domain/service/EventStoreService.java @@ -7,6 +7,8 @@ import mops.gruppen2.domain.event.AddUserEvent; import mops.gruppen2.domain.event.CreateGroupEvent; import mops.gruppen2.domain.event.Event; import mops.gruppen2.domain.exception.BadPayloadException; +import mops.gruppen2.domain.helper.IdHelper; +import mops.gruppen2.domain.helper.JsonHelper; import mops.gruppen2.persistance.EventRepository; import mops.gruppen2.persistance.dto.EventDTO; import org.springframework.stereotype.Service; @@ -80,7 +82,7 @@ public class EventStoreService { */ static EventDTO getDTOFromEvent(Event event) { try { - String payload = JsonService.serializeEvent(event); + String payload = JsonHelper.serializeEvent(event); return new EventDTO(null, event.getGroupId().toString(), event.getUserId(), @@ -107,7 +109,7 @@ public class EventStoreService { private static Event getEventFromDTO(EventDTO dto) { try { - return JsonService.deserializeEvent(dto.getEvent_payload()); + return JsonHelper.deserializeEvent(dto.getEvent_payload()); } catch (JsonProcessingException e) { log.error("Payload {} konnte nicht deserialisiert werden!", dto.getEvent_payload(), e); throw new BadPayloadException(EventStoreService.class.toString()); @@ -231,7 +233,7 @@ public class EventStoreService { List findEventsByGroupAndType(List groupIds, String... types) { return getEventsFromDTOs(eventStore.findEventDTOsByGroupAndType(Arrays.asList(types), - IdService.uuidsToString(groupIds))); + IdHelper.uuidsToString(groupIds))); } /** diff --git a/src/main/java/mops/gruppen2/domain/service/GroupService.java b/src/main/java/mops/gruppen2/domain/service/GroupService.java index 20db824..0c5a4de 100644 --- a/src/main/java/mops/gruppen2/domain/service/GroupService.java +++ b/src/main/java/mops/gruppen2/domain/service/GroupService.java @@ -15,6 +15,7 @@ import mops.gruppen2.domain.event.UpdateGroupTitleEvent; import mops.gruppen2.domain.event.UpdateRoleEvent; import mops.gruppen2.domain.event.UpdateUserLimitEvent; import mops.gruppen2.domain.exception.EventException; +import mops.gruppen2.domain.helper.ValidationHelper; import org.springframework.stereotype.Service; import java.util.List; @@ -115,8 +116,8 @@ public class GroupService { * @throws EventException Falls der User nicht gefunden wird */ public void toggleMemberRole(User user, Group group) throws EventException { - ValidationService.throwIfNoMember(group, user); - ValidationService.throwIfLastAdmin(user, group); + ValidationHelper.throwIfNoMember(group, user); + ValidationHelper.throwIfLastAdmin(user, group); Role role = group.getRoles().get(user.getId()); updateRole(user, group, role.toggle()); @@ -148,8 +149,8 @@ public class GroupService { * Prüft, ob der Nutzer schon Mitglied ist und ob Gruppe voll ist. */ public void addUser(User user, Group group) { - ValidationService.throwIfMember(group, user); - ValidationService.throwIfGroupFull(group); + ValidationHelper.throwIfMember(group, user); + ValidationHelper.throwIfGroupFull(group); Event event = new AddUserEvent(group, user); event.apply(group); @@ -173,10 +174,10 @@ public class GroupService { * Prüft, ob der Nutzer Mitglied ist und ob er der letzte Admin ist. */ public void deleteUser(User user, Group group) throws EventException { - ValidationService.throwIfNoMember(group, user); - ValidationService.throwIfLastAdmin(user, group); + ValidationHelper.throwIfNoMember(group, user); + ValidationHelper.throwIfLastAdmin(user, group); - if (ValidationService.checkIfGroupEmpty(group)) { + if (ValidationHelper.checkIfGroupEmpty(group)) { deleteGroup(user, group); } else { Event event = new DeleteUserEvent(group, user); @@ -191,7 +192,7 @@ public class GroupService { * Prüft, ob der Nutzer Admin ist. */ public void deleteGroup(User user, Group group) { - ValidationService.throwIfNoAdmin(group, user); + ValidationHelper.throwIfNoAdmin(group, user); Event event = new DeleteGroupEvent(group, user); event.apply(group); @@ -206,7 +207,7 @@ public class GroupService { * Bei keiner Änderung wird nichts erzeugt. */ public void updateTitle(User user, Group group, String title) { - ValidationService.throwIfNoAdmin(group, user); + ValidationHelper.throwIfNoAdmin(group, user); if (title.trim().equals(group.getTitle())) { return; @@ -224,7 +225,7 @@ public class GroupService { * Bei keiner Änderung wird nichts erzeugt. */ public void updateDescription(User user, Group group, String description) { - ValidationService.throwIfNoAdmin(group, user); + ValidationHelper.throwIfNoAdmin(group, user); if (description.trim().equals(group.getDescription())) { return; @@ -242,7 +243,7 @@ public class GroupService { * Bei keiner Änderung wird nichts erzeugt. */ private void updateRole(User user, Group group, Role role) { - ValidationService.throwIfNoMember(group, user); + ValidationHelper.throwIfNoMember(group, user); if (role == group.getRoles().get(user.getId())) { return; @@ -260,7 +261,7 @@ public class GroupService { * Bei keiner Änderung wird nichts erzeugt. */ public void updateUserLimit(User user, Group group, long userLimit) { - ValidationService.throwIfNoAdmin(group, user); + ValidationHelper.throwIfNoAdmin(group, user); if (userLimit == group.getUserLimit()) { return; diff --git a/src/main/java/mops/gruppen2/domain/service/ProjectionService.java b/src/main/java/mops/gruppen2/domain/service/ProjectionService.java index 9d12eda..5799b3a 100644 --- a/src/main/java/mops/gruppen2/domain/service/ProjectionService.java +++ b/src/main/java/mops/gruppen2/domain/service/ProjectionService.java @@ -7,6 +7,7 @@ import mops.gruppen2.domain.User; import mops.gruppen2.domain.event.Event; import mops.gruppen2.domain.exception.EventException; import mops.gruppen2.domain.exception.GroupNotFoundException; +import mops.gruppen2.domain.helper.IdHelper; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; @@ -185,7 +186,7 @@ public class ProjectionService { * @throws GroupNotFoundException Wenn die Gruppe nicht gefunden wird */ public Group projectSingleGroup(UUID groupId) throws GroupNotFoundException { - if (IdService.isEmpty(groupId)) { + if (IdHelper.isEmpty(groupId)) { throw new GroupNotFoundException(groupId + ": " + ProjectionService.class); } @@ -202,7 +203,7 @@ public class ProjectionService { * Projiziert eine einzelne Gruppe, welche leer sein darf. */ public Group projectParent(UUID parentId) { - if (IdService.isEmpty(parentId)) { + if (IdHelper.isEmpty(parentId)) { return new Group(); } diff --git a/src/main/java/mops/gruppen2/web/APIController.java b/src/main/java/mops/gruppen2/web/APIController.java index 687bc39..f766f55 100644 --- a/src/main/java/mops/gruppen2/web/APIController.java +++ b/src/main/java/mops/gruppen2/web/APIController.java @@ -7,9 +7,9 @@ import lombok.extern.log4j.Log4j2; import mops.gruppen2.aspect.annotation.TraceMethodCalls; import mops.gruppen2.domain.Group; import mops.gruppen2.domain.User; -import mops.gruppen2.domain.service.APIService; +import mops.gruppen2.domain.helper.APIHelper; +import mops.gruppen2.domain.helper.IdHelper; import mops.gruppen2.domain.service.EventStoreService; -import mops.gruppen2.domain.service.IdService; import mops.gruppen2.domain.service.ProjectionService; import mops.gruppen2.web.api.GroupRequestWrapper; import org.springframework.security.access.annotation.Secured; @@ -50,8 +50,8 @@ public class APIController { public GroupRequestWrapper getApiUpdate(@ApiParam("Letzte gespeicherte EventId des Anfragestellers") @PathVariable("id") long eventId) { - return APIService.wrap(eventStoreService.findMaxEventId(), - projectionService.projectNewGroups(eventId)); + return APIHelper.wrap(eventStoreService.findMaxEventId(), + projectionService.projectNewGroups(eventId)); } /** @@ -63,7 +63,7 @@ public class APIController { public List getApiUserGroups(@ApiParam("Nutzer-Id") @PathVariable("id") String userId) { - return IdService.uuidsToString(eventStoreService.findExistingUserGroups(new User(userId))); + return IdHelper.uuidsToString(eventStoreService.findExistingUserGroups(new User(userId))); } /** diff --git a/src/main/java/mops/gruppen2/web/GroupCreationController.java b/src/main/java/mops/gruppen2/web/GroupCreationController.java index 912f01e..be8bd65 100644 --- a/src/main/java/mops/gruppen2/web/GroupCreationController.java +++ b/src/main/java/mops/gruppen2/web/GroupCreationController.java @@ -4,11 +4,11 @@ import lombok.extern.log4j.Log4j2; import mops.gruppen2.aspect.annotation.TraceMethodCalls; import mops.gruppen2.domain.Group; import mops.gruppen2.domain.User; -import mops.gruppen2.domain.service.CsvService; +import mops.gruppen2.domain.helper.CsvHelper; +import mops.gruppen2.domain.helper.IdHelper; +import mops.gruppen2.domain.helper.ValidationHelper; import mops.gruppen2.domain.service.GroupService; -import mops.gruppen2.domain.service.IdService; import mops.gruppen2.domain.service.ProjectionService; -import mops.gruppen2.domain.service.ValidationService; import mops.gruppen2.web.form.CreateForm; import mops.gruppen2.web.form.MetaForm; import mops.gruppen2.web.form.UserLimitForm; @@ -56,7 +56,7 @@ public class GroupCreationController { @Valid UserLimitForm limit) { // Zusätzlicher check: studentin kann keine lecture erstellen - ValidationService.validateCreateForm(token, create); + ValidationHelper.validateCreateForm(token, create); User user = new User(token); Group group = groupService.createGroup(user, @@ -68,9 +68,9 @@ public class GroupCreationController { // ROLE_studentin kann kein CSV importieren if (token.getAccount().getRoles().contains("orga")) { - groupService.addUsersToGroup(CsvService.readCsvFile(create.getFile()), group, user); + groupService.addUsersToGroup(CsvHelper.readCsvFile(create.getFile()), group, user); } - return "redirect:/gruppen2/details/" + IdService.uuidToString(group.getId()); + return "redirect:/gruppen2/details/" + IdHelper.uuidToString(group.getId()); } } diff --git a/src/main/java/mops/gruppen2/web/GroupDetailsController.java b/src/main/java/mops/gruppen2/web/GroupDetailsController.java index eb0987a..05abea9 100644 --- a/src/main/java/mops/gruppen2/web/GroupDetailsController.java +++ b/src/main/java/mops/gruppen2/web/GroupDetailsController.java @@ -4,12 +4,12 @@ import lombok.extern.log4j.Log4j2; import mops.gruppen2.aspect.annotation.TraceMethodCalls; import mops.gruppen2.domain.Group; import mops.gruppen2.domain.User; -import mops.gruppen2.domain.service.CsvService; +import mops.gruppen2.domain.helper.CsvHelper; +import mops.gruppen2.domain.helper.IdHelper; +import mops.gruppen2.domain.helper.ValidationHelper; import mops.gruppen2.domain.service.GroupService; -import mops.gruppen2.domain.service.IdService; import mops.gruppen2.domain.service.InviteService; import mops.gruppen2.domain.service.ProjectionService; -import mops.gruppen2.domain.service.ValidationService; import mops.gruppen2.web.form.MetaForm; import mops.gruppen2.web.form.UserLimitForm; import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken; @@ -63,7 +63,7 @@ public class GroupDetailsController { model.addAttribute("parent", parent); // Detailseite für nicht-Mitglieder - if (!ValidationService.checkIfMember(group, user)) { + if (!ValidationHelper.checkIfMember(group, user)) { return "preview"; } @@ -79,7 +79,7 @@ public class GroupDetailsController { User user = new User(token); Group group = projectionService.projectSingleGroup(UUID.fromString(groupId)); - if (ValidationService.checkIfMember(group, user)) { + if (ValidationHelper.checkIfMember(group, user)) { return "redirect:/gruppen2/details/" + groupId; } @@ -97,7 +97,7 @@ public class GroupDetailsController { User user = new User(token); Group group = projectionService.projectSingleGroup(UUID.fromString(groupId)); - ValidationService.throwIfNoMember(group, user); + ValidationHelper.throwIfNoMember(group, user); groupService.deleteUser(user, group); @@ -119,7 +119,7 @@ public class GroupDetailsController { String serverURL = actualURL.substring(0, actualURL.indexOf("gruppen2/")); String link = serverURL + "gruppen2/join/" + inviteService.getLinkByGroup(group); - ValidationService.throwIfNoAdmin(group, user); + ValidationHelper.throwIfNoAdmin(group, user); model.addAttribute("group", group); model.addAttribute("link", link); @@ -165,9 +165,9 @@ public class GroupDetailsController { @RequestParam(value = "file", required = false) MultipartFile file) { User user = new User(token); - Group group = projectionService.projectSingleGroup(IdService.stringToUUID(groupId)); + Group group = projectionService.projectSingleGroup(IdHelper.stringToUUID(groupId)); - groupService.addUsersToGroup(CsvService.readCsvFile(file), group, user); + groupService.addUsersToGroup(CsvHelper.readCsvFile(file), group, user); return "redirect:/gruppen2/details/" + groupId + "/edit"; } @@ -182,12 +182,12 @@ public class GroupDetailsController { User user = new User(token); Group group = projectionService.projectSingleGroup(UUID.fromString(groupId)); - ValidationService.throwIfNoAdmin(group, user); + ValidationHelper.throwIfNoAdmin(group, user); groupService.toggleMemberRole(new User(userId), group); // Falls sich der User selbst die Rechte genommen hat - if (!ValidationService.checkIfAdmin(group, user)) { + if (!ValidationHelper.checkIfAdmin(group, user)) { return "redirect:/gruppen2/details/" + groupId; } @@ -204,7 +204,7 @@ public class GroupDetailsController { User user = new User(token); Group group = projectionService.projectSingleGroup(UUID.fromString(groupId)); - ValidationService.throwIfNoAdmin(group, user); + ValidationHelper.throwIfNoAdmin(group, user); // Der eingeloggte User kann sich nicht selbst entfernen (er kann aber verlassen) if (!userId.equals(user.getId())) { diff --git a/src/main/java/mops/gruppen2/web/SearchAndInviteController.java b/src/main/java/mops/gruppen2/web/SearchAndInviteController.java index 91b0b36..aa43831 100644 --- a/src/main/java/mops/gruppen2/web/SearchAndInviteController.java +++ b/src/main/java/mops/gruppen2/web/SearchAndInviteController.java @@ -5,10 +5,10 @@ import mops.gruppen2.aspect.annotation.TraceMethodCalls; import mops.gruppen2.domain.Group; import mops.gruppen2.domain.GroupType; import mops.gruppen2.domain.User; +import mops.gruppen2.domain.helper.ValidationHelper; import mops.gruppen2.domain.service.InviteService; import mops.gruppen2.domain.service.ProjectionService; import mops.gruppen2.domain.service.SearchService; -import mops.gruppen2.domain.service.ValidationService; import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -79,7 +79,7 @@ public class SearchAndInviteController { } // Bereits Mitglied - if (ValidationService.checkIfMember(group, user)) { + if (ValidationHelper.checkIfMember(group, user)) { return "redirect:/gruppen2/details/" + group.getId(); } diff --git a/src/main/java/mops/gruppen2/web/form/CreateForm.java b/src/main/java/mops/gruppen2/web/form/CreateForm.java index dc5e06b..eac2eec 100644 --- a/src/main/java/mops/gruppen2/web/form/CreateForm.java +++ b/src/main/java/mops/gruppen2/web/form/CreateForm.java @@ -2,7 +2,7 @@ package mops.gruppen2.web.form; import lombok.Data; import mops.gruppen2.domain.GroupType; -import mops.gruppen2.domain.service.IdService; +import mops.gruppen2.domain.helper.IdHelper; import org.springframework.web.multipart.MultipartFile; import javax.validation.constraints.NotBlank; @@ -24,6 +24,6 @@ public class CreateForm { } public UUID getParent() { - return getType() == GroupType.LECTURE ? IdService.emptyUUID() : IdService.stringToUUID(parent); + return getType() == GroupType.LECTURE ? IdHelper.emptyUUID() : IdHelper.stringToUUID(parent); } } diff --git a/src/test/java/mops/gruppen2/domain/service/ControllerServiceTest.java b/src/test/java/mops/gruppen2/domain/service/ControllerServiceTest.java index cf45c02..96f89b4 100644 --- a/src/test/java/mops/gruppen2/domain/service/ControllerServiceTest.java +++ b/src/test/java/mops/gruppen2/domain/service/ControllerServiceTest.java @@ -2,6 +2,7 @@ package mops.gruppen2.domain.service; import mops.gruppen2.Gruppen2Application; import mops.gruppen2.domain.Account; +import mops.gruppen2.domain.helper.ValidationHelper; import mops.gruppen2.persistance.EventRepository; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; @@ -23,7 +24,7 @@ class ControllerServiceTest { @Autowired EventStoreService eventStoreService; @Autowired - ValidationService validationService; + ValidationHelper validationHelper; @Autowired EventRepository eventRepository; @Autowired diff --git a/src/test/java/mops/gruppen2/domain/service/GroupServiceTest.java b/src/test/java/mops/gruppen2/domain/service/GroupServiceTest.java index 3fdb3e0..14bc7b8 100644 --- a/src/test/java/mops/gruppen2/domain/service/GroupServiceTest.java +++ b/src/test/java/mops/gruppen2/domain/service/GroupServiceTest.java @@ -6,6 +6,7 @@ import mops.gruppen2.domain.Group; import mops.gruppen2.domain.GroupType; import mops.gruppen2.domain.User; import mops.gruppen2.domain.event.Event; +import mops.gruppen2.domain.helper.ValidationHelper; import mops.gruppen2.persistance.EventRepository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; @@ -53,7 +54,7 @@ class GroupServiceTest { @Autowired private EventStoreService eventStoreService; @Autowired - private ValidationService validationService; + private ValidationHelper validationHelper; @Autowired private InviteService inviteService;