diff --git a/src/main/java/mops/gruppen2/domain/event/AddUserEvent.java b/src/main/java/mops/gruppen2/domain/event/AddUserEvent.java index 69d1443..ce2d766 100644 --- a/src/main/java/mops/gruppen2/domain/event/AddUserEvent.java +++ b/src/main/java/mops/gruppen2/domain/event/AddUserEvent.java @@ -1,5 +1,7 @@ package mops.gruppen2.domain.event; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; import lombok.Value; import lombok.extern.log4j.Log4j2; import mops.gruppen2.domain.exception.EventException; @@ -14,14 +16,20 @@ import mops.gruppen2.domain.model.User; @Log4j2 @Value +@AllArgsConstructor public class AddUserEvent extends Event { + @JsonProperty("givenname") String givenname; + + @JsonProperty("familyname") String familyname; + + @JsonProperty("email") String email; public AddUserEvent(Group group, User user) { - super(group.getId(), user.getId()); + super(group.getGroupid(), user.getUserid()); givenname = user.getGivenname(); familyname = user.getFamilyname(); email = user.getEmail(); @@ -29,11 +37,11 @@ public class AddUserEvent extends Event { @Override protected void applyEvent(Group group) throws EventException { - ValidationHelper.throwIfMember(group, new User(userId)); + ValidationHelper.throwIfMember(group, new User(userid)); ValidationHelper.throwIfGroupFull(group); - group.getMembers().put(userId, new User(userId, givenname, familyname, email)); - group.getRoles().put(userId, Role.MEMBER); + group.getMembers().put(userid, new User(userid, givenname, familyname, email)); + group.getRoles().put(userid, Role.MEMBER); log.trace("\t\t\t\t\tNeue Members: {}", group.getMembers()); log.trace("\t\t\t\t\tNeue Rollen: {}", group.getRoles()); diff --git a/src/main/java/mops/gruppen2/domain/event/CreateGroupEvent.java b/src/main/java/mops/gruppen2/domain/event/CreateGroupEvent.java index dbfb695..ac381d9 100644 --- a/src/main/java/mops/gruppen2/domain/event/CreateGroupEvent.java +++ b/src/main/java/mops/gruppen2/domain/event/CreateGroupEvent.java @@ -1,29 +1,36 @@ package mops.gruppen2.domain.event; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; import lombok.Value; import lombok.extern.log4j.Log4j2; import mops.gruppen2.domain.model.Group; import mops.gruppen2.domain.model.Type; +import mops.gruppen2.domain.model.User; import java.util.UUID; @Log4j2 @Value +@AllArgsConstructor// Value generiert den allArgsConstrucot nur, wenn keiner explizit angegeben ist public class CreateGroupEvent extends Event { - UUID groupParent; + @JsonProperty("parent") + UUID parent; + + @JsonProperty("type") Type type; - public CreateGroupEvent(UUID groupId, String userId, UUID parent, Type type) { - super(groupId, userId); - groupParent = parent; + public CreateGroupEvent(UUID groupId, User user, UUID parent, Type type) { + super(groupId, user.getUserid()); + this.parent = parent; this.type = type; } @Override protected void applyEvent(Group group) { - group.setId(groupId); - group.setParent(groupParent); + group.setGroupid(groupid); + group.setParent(parent); group.setType(type); log.trace("\t\t\t\t\tNeue Gruppe: {}", group.toString()); diff --git a/src/main/java/mops/gruppen2/domain/event/DeleteGroupEvent.java b/src/main/java/mops/gruppen2/domain/event/DeleteGroupEvent.java index 0b62ad7..a2f79be 100644 --- a/src/main/java/mops/gruppen2/domain/event/DeleteGroupEvent.java +++ b/src/main/java/mops/gruppen2/domain/event/DeleteGroupEvent.java @@ -1,5 +1,6 @@ package mops.gruppen2.domain.event; +import lombok.AllArgsConstructor; import lombok.Value; import lombok.extern.log4j.Log4j2; import mops.gruppen2.domain.model.Group; @@ -7,10 +8,11 @@ import mops.gruppen2.domain.model.User; @Log4j2 @Value +@AllArgsConstructor public class DeleteGroupEvent extends Event { public DeleteGroupEvent(Group group, User user) { - super(group.getId(), user.getId()); + super(group.getGroupid(), user.getUserid()); } @Override @@ -21,7 +23,7 @@ public class DeleteGroupEvent extends Event { group.setDescription(null); group.setType(null); group.setParent(null); - group.setUserLimit(null); + group.setLimit(null); log.trace("\t\t\t\t\tGelöschte Gruppe: {}", group); } diff --git a/src/main/java/mops/gruppen2/domain/event/DeleteUserEvent.java b/src/main/java/mops/gruppen2/domain/event/DeleteUserEvent.java index 12ba916..eb7d3fe 100644 --- a/src/main/java/mops/gruppen2/domain/event/DeleteUserEvent.java +++ b/src/main/java/mops/gruppen2/domain/event/DeleteUserEvent.java @@ -1,5 +1,6 @@ package mops.gruppen2.domain.event; +import lombok.AllArgsConstructor; import lombok.Value; import lombok.extern.log4j.Log4j2; import mops.gruppen2.domain.exception.EventException; @@ -12,18 +13,19 @@ import mops.gruppen2.domain.model.User; */ @Log4j2 @Value +@AllArgsConstructor public class DeleteUserEvent extends Event { public DeleteUserEvent(Group group, User user) { - super(group.getId(), user.getId()); + super(group.getGroupid(), user.getUserid()); } @Override protected void applyEvent(Group group) throws EventException { - ValidationHelper.throwIfNoMember(group, new User(userId)); + ValidationHelper.throwIfNoMember(group, new User(userid)); - group.getMembers().remove(userId); - group.getRoles().remove(userId); + group.getMembers().remove(userid); + group.getRoles().remove(userid); log.trace("\t\t\t\t\tNeue Members: {}", group.getMembers()); log.trace("\t\t\t\t\tNeue Rollen: {}", group.getRoles()); diff --git a/src/main/java/mops/gruppen2/domain/event/Event.java b/src/main/java/mops/gruppen2/domain/event/Event.java index a83f2ab..3fbf498 100644 --- a/src/main/java/mops/gruppen2/domain/event/Event.java +++ b/src/main/java/mops/gruppen2/domain/event/Event.java @@ -1,5 +1,6 @@ package mops.gruppen2.domain.event; +import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import lombok.AllArgsConstructor; @@ -12,32 +13,29 @@ import mops.gruppen2.domain.model.Group; import java.util.UUID; - @Log4j2 -@JsonTypeInfo( - use = JsonTypeInfo.Id.NAME, - property = "type" -) -@JsonSubTypes({ - @JsonSubTypes.Type(value = AddUserEvent.class, name = "AddUserEvent"), - @JsonSubTypes.Type(value = CreateGroupEvent.class, name = "CreateGroupEvent"), - @JsonSubTypes.Type(value = DeleteUserEvent.class, name = "DeleteUserEvent"), - @JsonSubTypes.Type(value = UpdateGroupDescriptionEvent.class, name = "UpdateGroupDescriptionEvent"), - @JsonSubTypes.Type(value = UpdateGroupTitleEvent.class, name = "UpdateGroupTitleEvent"), - @JsonSubTypes.Type(value = UpdateRoleEvent.class, name = "UpdateRoleEvent"), - @JsonSubTypes.Type(value = DeleteGroupEvent.class, name = "DeleteGroupEvent"), - @JsonSubTypes.Type(value = UpdateUserLimitEvent.class, name = "UpdateUserLimitEvent") - }) +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type") +@JsonSubTypes({@JsonSubTypes.Type(value = AddUserEvent.class, name = "AddUserEvent"), + @JsonSubTypes.Type(value = CreateGroupEvent.class, name = "CreateGroupEvent"), + @JsonSubTypes.Type(value = DeleteUserEvent.class, name = "DeleteUserEvent"), + @JsonSubTypes.Type(value = UpdateGroupDescriptionEvent.class, name = "UpdateGroupDescriptionEvent"), + @JsonSubTypes.Type(value = UpdateGroupTitleEvent.class, name = "UpdateGroupTitleEvent"), + @JsonSubTypes.Type(value = UpdateRoleEvent.class, name = "UpdateRoleEvent"), + @JsonSubTypes.Type(value = DeleteGroupEvent.class, name = "DeleteGroupEvent"), + @JsonSubTypes.Type(value = UpdateUserLimitEvent.class, name = "UpdateUserLimitEvent")}) @Getter -@NoArgsConstructor @AllArgsConstructor +@NoArgsConstructor // Lombok needs a default constructor in the base class public abstract class Event { - protected UUID groupId; - protected String userId; + @JsonProperty("groupid") + protected UUID groupid; + + @JsonProperty("userid") + protected String userid; public Group apply(Group group) throws EventException { - checkGroupIdMatch(group.getId()); + checkGroupIdMatch(group.getGroupid()); log.trace("Event angewendet:\t{}", this); @@ -52,7 +50,7 @@ public abstract class Event { return; } - if (!this.groupId.equals(groupId)) { + if (!groupid.equals(groupId)) { throw new GroupIdMismatchException(getClass().toString()); } } diff --git a/src/main/java/mops/gruppen2/domain/event/UpdateGroupDescriptionEvent.java b/src/main/java/mops/gruppen2/domain/event/UpdateGroupDescriptionEvent.java index a3fc8ad..b5d5dc4 100644 --- a/src/main/java/mops/gruppen2/domain/event/UpdateGroupDescriptionEvent.java +++ b/src/main/java/mops/gruppen2/domain/event/UpdateGroupDescriptionEvent.java @@ -1,5 +1,7 @@ package mops.gruppen2.domain.event; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; import lombok.Value; import lombok.extern.log4j.Log4j2; import mops.gruppen2.domain.model.Description; @@ -11,18 +13,20 @@ import mops.gruppen2.domain.model.User; */ @Log4j2 @Value +@AllArgsConstructor public class UpdateGroupDescriptionEvent extends Event { - Description groupDescription; + @JsonProperty("desc") + Description description; - public UpdateGroupDescriptionEvent(Group group, User user, Description groupDescription) { - super(group.getId(), user.getId()); - this.groupDescription = groupDescription; + public UpdateGroupDescriptionEvent(Group group, User user, Description description) { + super(group.getGroupid(), user.getUserid()); + this.description = description; } @Override protected void applyEvent(Group group) { - group.setDescription(groupDescription); + group.setDescription(description); log.trace("\t\t\t\t\tNeue Beschreibung: {}", group.getDescription()); } diff --git a/src/main/java/mops/gruppen2/domain/event/UpdateGroupTitleEvent.java b/src/main/java/mops/gruppen2/domain/event/UpdateGroupTitleEvent.java index f698879..96e469f 100644 --- a/src/main/java/mops/gruppen2/domain/event/UpdateGroupTitleEvent.java +++ b/src/main/java/mops/gruppen2/domain/event/UpdateGroupTitleEvent.java @@ -1,5 +1,7 @@ package mops.gruppen2.domain.event; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; import lombok.Value; import lombok.extern.log4j.Log4j2; import mops.gruppen2.domain.model.Group; @@ -11,18 +13,20 @@ import mops.gruppen2.domain.model.User; */ @Log4j2 @Value +@AllArgsConstructor public class UpdateGroupTitleEvent extends Event { - Title newGroupTitle; + @JsonProperty("title") + Title title; - public UpdateGroupTitleEvent(Group group, User user, Title newGroupTitle) { - super(group.getId(), user.getId()); - this.newGroupTitle = newGroupTitle; + public UpdateGroupTitleEvent(Group group, User user, Title title) { + super(group.getGroupid(), user.getUserid()); + this.title = title; } @Override protected void applyEvent(Group group) { - group.setTitle(newGroupTitle); + group.setTitle(title); log.trace("\t\t\t\t\tNeuer Titel: {}", group.getTitle()); } diff --git a/src/main/java/mops/gruppen2/domain/event/UpdateRoleEvent.java b/src/main/java/mops/gruppen2/domain/event/UpdateRoleEvent.java index 2fc57dd..48d0b3c 100644 --- a/src/main/java/mops/gruppen2/domain/event/UpdateRoleEvent.java +++ b/src/main/java/mops/gruppen2/domain/event/UpdateRoleEvent.java @@ -1,5 +1,7 @@ package mops.gruppen2.domain.event; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; import lombok.Value; import lombok.extern.log4j.Log4j2; import mops.gruppen2.domain.exception.UserNotFoundException; @@ -8,32 +10,27 @@ import mops.gruppen2.domain.model.Group; import mops.gruppen2.domain.model.Role; import mops.gruppen2.domain.model.User; -import java.util.UUID; - /** * Aktualisiert die Gruppenrolle eines Teilnehmers. */ @Log4j2 @Value +@AllArgsConstructor public class UpdateRoleEvent extends Event { - Role newRole; + @JsonProperty("role") + Role role; - public UpdateRoleEvent(UUID groupId, String userId, Role newRole) { - super(groupId, userId); - this.newRole = newRole; - } - - public UpdateRoleEvent(Group group, User user, Role newRole) { - super(group.getId(), user.getId()); - this.newRole = newRole; + public UpdateRoleEvent(Group group, User user, Role tole) { + super(group.getGroupid(), user.getUserid()); + role = tole; } @Override protected void applyEvent(Group group) throws UserNotFoundException { - ValidationHelper.throwIfNoMember(group, new User(userId)); + ValidationHelper.throwIfNoMember(group, new User(userid)); - group.getRoles().put(userId, newRole); + group.getRoles().put(userid, role); log.trace("\t\t\t\t\tNeue Rollen: {}", group.getRoles()); } diff --git a/src/main/java/mops/gruppen2/domain/event/UpdateUserLimitEvent.java b/src/main/java/mops/gruppen2/domain/event/UpdateUserLimitEvent.java index 030f48a..f3fdd56 100644 --- a/src/main/java/mops/gruppen2/domain/event/UpdateUserLimitEvent.java +++ b/src/main/java/mops/gruppen2/domain/event/UpdateUserLimitEvent.java @@ -1,5 +1,7 @@ package mops.gruppen2.domain.event; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; import lombok.Value; import lombok.extern.log4j.Log4j2; import mops.gruppen2.domain.exception.BadParameterException; @@ -10,23 +12,25 @@ import mops.gruppen2.domain.model.User; @Log4j2 @Value +@AllArgsConstructor public class UpdateUserLimitEvent extends Event { - Limit userLimit; + @JsonProperty("limit") + Limit limit; - public UpdateUserLimitEvent(Group group, User user, Limit userLimit) { - super(group.getId(), user.getId()); - this.userLimit = userLimit; + public UpdateUserLimitEvent(Group group, User user, Limit limit) { + super(group.getGroupid(), user.getUserid()); + this.limit = limit; } @Override protected void applyEvent(Group group) throws EventException { - if (userLimit.getUserLimit() < group.getMembers().size()) { + if (limit.getUserLimit() < group.getMembers().size()) { throw new BadParameterException("Teilnehmerlimit zu klein."); } - group.setUserLimit(userLimit); + group.setLimit(limit); - log.trace("\t\t\t\t\tNeues UserLimit: {}", group.getUserLimit()); + log.trace("\t\t\t\t\tNeues UserLimit: {}", group.getLimit()); } } diff --git a/src/main/java/mops/gruppen2/domain/helper/JsonHelper.java b/src/main/java/mops/gruppen2/domain/helper/JsonHelper.java index d4a5fa9..93ea49b 100644 --- a/src/main/java/mops/gruppen2/domain/helper/JsonHelper.java +++ b/src/main/java/mops/gruppen2/domain/helper/JsonHelper.java @@ -25,7 +25,9 @@ public final class JsonHelper { public static String serializeEvent(Event event) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); - return mapper.writeValueAsString(event); + String payload = mapper.writeValueAsString(event); + log.trace(payload); + return payload; } /** diff --git a/src/main/java/mops/gruppen2/domain/helper/ValidationHelper.java b/src/main/java/mops/gruppen2/domain/helper/ValidationHelper.java index aa05b40..98e17ee 100644 --- a/src/main/java/mops/gruppen2/domain/helper/ValidationHelper.java +++ b/src/main/java/mops/gruppen2/domain/helper/ValidationHelper.java @@ -28,7 +28,7 @@ public final class ValidationHelper { * Überprüft, ob ein User in einer Gruppe teilnimmt. */ public static boolean checkIfMember(Group group, User user) { - return group.getMembers().containsKey(user.getId()); + return group.getMembers().containsKey(user.getUserid()); } public static boolean checkIfLastMember(User user, Group group) { @@ -39,7 +39,7 @@ public final class ValidationHelper { * Überprüft, ob eine Gruppe voll ist. */ public static boolean checkIfGroupFull(Group group) { - return group.getMembers().size() >= group.getUserLimit().getUserLimit(); + return group.getMembers().size() >= group.getLimit().getUserLimit(); } /** @@ -54,7 +54,7 @@ public final class ValidationHelper { */ public static boolean checkIfAdmin(Group group, User user) { if (checkIfMember(group, user)) { - return group.getRoles().get(user.getId()) == ADMIN; + return group.getRoles().get(user.getUserid()) == ADMIN; } return false; } diff --git a/src/main/java/mops/gruppen2/domain/model/Description.java b/src/main/java/mops/gruppen2/domain/model/Description.java index 218c094..7db3a30 100644 --- a/src/main/java/mops/gruppen2/domain/model/Description.java +++ b/src/main/java/mops/gruppen2/domain/model/Description.java @@ -1,20 +1,21 @@ package mops.gruppen2.domain.model; -import lombok.Getter; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Value; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; @Value -@Getter -//@AllArgsConstructor -//@NoArgsConstructor public class Description { - //private Description() {} - @NotBlank @Size(min = 4, max = 512) + @JsonProperty("desc") String groupDescription; + + @Override + public String toString() { + return groupDescription; + } } diff --git a/src/main/java/mops/gruppen2/domain/model/Group.java b/src/main/java/mops/gruppen2/domain/model/Group.java index c026219..bd84a2d 100644 --- a/src/main/java/mops/gruppen2/domain/model/Group.java +++ b/src/main/java/mops/gruppen2/domain/model/Group.java @@ -19,7 +19,7 @@ import java.util.UUID; public class Group { @EqualsAndHashCode.Include - private UUID id; + private UUID groupid; @ToString.Exclude private UUID parent; @@ -30,7 +30,7 @@ public class Group { private Description description; @ToString.Exclude - private Limit userLimit = new Limit(1); // Add initial user + private Limit limit = new Limit(1); // Add initial user @ToString.Exclude private final Map members = new HashMap<>(); diff --git a/src/main/java/mops/gruppen2/domain/model/Limit.java b/src/main/java/mops/gruppen2/domain/model/Limit.java index d909288..60c0e08 100644 --- a/src/main/java/mops/gruppen2/domain/model/Limit.java +++ b/src/main/java/mops/gruppen2/domain/model/Limit.java @@ -1,19 +1,21 @@ package mops.gruppen2.domain.model; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Value; import javax.validation.constraints.Max; import javax.validation.constraints.Min; @Value -//@Getter -//@AllArgsConstructor -//@NoArgsConstructor public class Limit { - //private Limit() {} - @Min(1) @Max(999_999) + @JsonProperty("limit") long userLimit; + + @Override + public String toString() { + return String.valueOf(userLimit); + } } diff --git a/src/main/java/mops/gruppen2/domain/model/Title.java b/src/main/java/mops/gruppen2/domain/model/Title.java index 2c48778..6c410df 100644 --- a/src/main/java/mops/gruppen2/domain/model/Title.java +++ b/src/main/java/mops/gruppen2/domain/model/Title.java @@ -1,19 +1,21 @@ package mops.gruppen2.domain.model; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Value; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; @Value -//@Getter -//@AllArgsConstructor -//@NoArgsConstructor public class Title { - //private Title() {} - @NotBlank @Size(min = 4, max = 128) + @JsonProperty("title") String groupTitle; + + @Override + public String toString() { + return groupTitle; + } } diff --git a/src/main/java/mops/gruppen2/domain/model/User.java b/src/main/java/mops/gruppen2/domain/model/User.java index bb4b0ec..98f60d1 100644 --- a/src/main/java/mops/gruppen2/domain/model/User.java +++ b/src/main/java/mops/gruppen2/domain/model/User.java @@ -2,31 +2,30 @@ package mops.gruppen2.domain.model; import lombok.AllArgsConstructor; import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; import lombok.ToString; +import lombok.Value; import org.keycloak.KeycloakPrincipal; import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken; -@Getter +@Value @AllArgsConstructor -@NoArgsConstructor // Für Jackson: CSV-Import -@EqualsAndHashCode(onlyExplicitlyIncluded = true) @ToString public class User { @EqualsAndHashCode.Include - private String id; + String userid; + + String givenname; - private String givenname; @ToString.Exclude - private String familyname; + String familyname; + @ToString.Exclude - private String email; + String email; public User(KeycloakAuthenticationToken token) { KeycloakPrincipal principal = (KeycloakPrincipal) token.getPrincipal(); - id = principal.getName(); + userid = principal.getName(); givenname = principal.getKeycloakSecurityContext().getIdToken().getGivenName(); familyname = principal.getKeycloakSecurityContext().getIdToken().getFamilyName(); email = principal.getKeycloakSecurityContext().getIdToken().getEmail(); @@ -35,10 +34,10 @@ public class User { /** * User identifizieren sich über die Id, mehr wird also manchmal nicht benötigt. * - * @param userId Die User Id + * @param userid Die User Id */ - public User(String userId) { - id = userId; + public User(String userid) { + this.userid = userid; givenname = ""; familyname = ""; email = ""; diff --git a/src/main/java/mops/gruppen2/domain/service/EventStoreService.java b/src/main/java/mops/gruppen2/domain/service/EventStoreService.java index 463ce8b..a2b8eaa 100644 --- a/src/main/java/mops/gruppen2/domain/service/EventStoreService.java +++ b/src/main/java/mops/gruppen2/domain/service/EventStoreService.java @@ -84,8 +84,8 @@ public class EventStoreService { try { String payload = JsonHelper.serializeEvent(event); return new EventDTO(null, - event.getGroupId().toString(), - event.getUserId(), + event.getGroupid().toString(), + event.getUserid(), getEventType(event), payload); } catch (JsonProcessingException e) { @@ -181,7 +181,7 @@ public class EventStoreService { return createEvents.stream() .filter(event -> event instanceof CreateGroupEvent) - .map(Event::getGroupId) + .map(Event::getGroupid) .collect(Collectors.toList()); } @@ -194,14 +194,14 @@ public class EventStoreService { List userEvents = findLatestEventsFromGroupsByUser(user); List deletedIds = findLatestEventsFromGroupsByType("DeleteGroupEvent") .stream() - .map(Event::getGroupId) + .map(Event::getGroupid) .collect(Collectors.toList()); - userEvents.removeIf(event -> deletedIds.contains(event.getGroupId())); + userEvents.removeIf(event -> deletedIds.contains(event.getGroupid())); return userEvents.stream() .filter(event -> event instanceof AddUserEvent) - .map(Event::getGroupId) + .map(Event::getGroupid) .collect(Collectors.toList()); } @@ -244,7 +244,7 @@ public class EventStoreService { * @return Eine Liste von einem Add- oder DeleteUserEvent pro Gruppe */ private List findLatestEventsFromGroupsByUser(User user) { - return getEventsFromDTOs(eventStore.findLatestEventDTOsPartitionedByGroupByUser(user.getId())); + return getEventsFromDTOs(eventStore.findLatestEventDTOsPartitionedByGroupByUser(user.getUserid())); } diff --git a/src/main/java/mops/gruppen2/domain/service/GroupService.java b/src/main/java/mops/gruppen2/domain/service/GroupService.java index 22c4368..4fd0494 100644 --- a/src/main/java/mops/gruppen2/domain/service/GroupService.java +++ b/src/main/java/mops/gruppen2/domain/service/GroupService.java @@ -106,7 +106,7 @@ public class GroupService { * @return Das neue Teilnehmermaximum */ private static Limit getAdjustedUserLimit(List newUsers, Group group) { - return new Limit(Math.max((long) group.getMembers().size() + newUsers.size(), group.getUserLimit().getUserLimit())); + return new Limit(Math.max((long) group.getMembers().size() + newUsers.size(), group.getLimit().getUserLimit())); } /** @@ -122,7 +122,7 @@ public class GroupService { ValidationHelper.throwIfNoMember(group, user); ValidationHelper.throwIfLastAdmin(user, group); - Role role = group.getRoles().get(user.getId()); + Role role = group.getRoles().get(user.getUserid()); updateRole(user, group, role.toggle()); } @@ -136,7 +136,7 @@ public class GroupService { */ private Group createGroup(User user, UUID parent, Type type) { Event event = new CreateGroupEvent(UUID.randomUUID(), - user.getId(), + user, parent, type); Group group = new Group(); @@ -248,7 +248,7 @@ public class GroupService { private void updateRole(User user, Group group, Role role) { ValidationHelper.throwIfNoMember(group, user); - if (role == group.getRoles().get(user.getId())) { + if (role == group.getRoles().get(user.getUserid())) { return; } @@ -266,7 +266,7 @@ public class GroupService { public void updateUserLimit(User user, Group group, Limit userLimit) { ValidationHelper.throwIfNoAdmin(group, user); - if (userLimit == group.getUserLimit()) { + if (userLimit == group.getLimit()) { return; } diff --git a/src/main/java/mops/gruppen2/domain/service/InviteService.java b/src/main/java/mops/gruppen2/domain/service/InviteService.java index 64ba53e..669b3dd 100644 --- a/src/main/java/mops/gruppen2/domain/service/InviteService.java +++ b/src/main/java/mops/gruppen2/domain/service/InviteService.java @@ -22,16 +22,16 @@ public class InviteService { void createLink(Group group) { inviteRepository.save(new InviteLinkDTO(null, - group.getId().toString(), + group.getGroupid().toString(), UUID.randomUUID().toString())); - log.debug("Link wurde erzeugt! (Gruppe: {})", group.getId()); + log.debug("Link wurde erzeugt! (Gruppe: {})", group.getGroupid()); } void destroyLink(Group group) { - inviteRepository.deleteLinkOfGroup(group.getId().toString()); + inviteRepository.deleteLinkOfGroup(group.getGroupid().toString()); - log.debug("Link wurde zerstört! (Gruppe: {})", group.getId()); + log.debug("Link wurde zerstört! (Gruppe: {})", group.getGroupid()); } public UUID getGroupIdFromLink(String link) { @@ -45,10 +45,10 @@ public class InviteService { public String getLinkByGroup(Group group) { try { - return inviteRepository.findLinkByGroupId(group.getId().toString()); + return inviteRepository.findLinkByGroupId(group.getGroupid().toString()); } catch (Exception e) { - log.error("Link zu Gruppe ({}) konnte nicht gefunden werden!", group.getId(), e); - throw new NoInviteExistException(group.getId().toString()); + log.error("Link zu Gruppe ({}) konnte nicht gefunden werden!", group.getGroupid(), e); + throw new NoInviteExistException(group.getGroupid().toString()); } } } diff --git a/src/main/java/mops/gruppen2/domain/service/ProjectionService.java b/src/main/java/mops/gruppen2/domain/service/ProjectionService.java index e7355b6..b241872 100644 --- a/src/main/java/mops/gruppen2/domain/service/ProjectionService.java +++ b/src/main/java/mops/gruppen2/domain/service/ProjectionService.java @@ -48,7 +48,7 @@ public class ProjectionService { static List projectGroups(List events) throws EventException { Map groupMap = new HashMap<>(); - events.forEach(event -> event.apply(getOrCreateGroup(groupMap, event.getGroupId()))); + events.forEach(event -> event.apply(getOrCreateGroup(groupMap, event.getGroupid()))); return new ArrayList<>(groupMap.values()); } @@ -119,7 +119,6 @@ public class ProjectionService { * @throws EventException Projektionsfehler */ @Cacheable("groups") - //TODO: remove userID param public List projectPublicGroups() throws EventException { List groupIds = eventStoreService.findExistingGroupIds(); List events = eventStoreService.findEventsByGroupAndType(groupIds, @@ -219,7 +218,7 @@ public class ProjectionService { void removeUserGroups(List groups, User user) { List userGroups = eventStoreService.findExistingUserGroups(user); - groups.removeIf(group -> userGroups.contains(group.getId())); + groups.removeIf(group -> userGroups.contains(group.getGroupid())); } } diff --git a/src/main/java/mops/gruppen2/web/GroupCreationController.java b/src/main/java/mops/gruppen2/web/GroupCreationController.java index 60fb386..9cc435c 100644 --- a/src/main/java/mops/gruppen2/web/GroupCreationController.java +++ b/src/main/java/mops/gruppen2/web/GroupCreationController.java @@ -70,6 +70,6 @@ public class GroupCreationController { groupService.addUsersToGroup(CsvHelper.readCsvFile(create.getFile()), group, user); } - return "redirect:/gruppen2/details/" + IdHelper.uuidToString(group.getId()); + return "redirect:/gruppen2/details/" + IdHelper.uuidToString(group.getGroupid()); } } diff --git a/src/main/java/mops/gruppen2/web/GroupDetailsController.java b/src/main/java/mops/gruppen2/web/GroupDetailsController.java index 577887e..843cba1 100644 --- a/src/main/java/mops/gruppen2/web/GroupDetailsController.java +++ b/src/main/java/mops/gruppen2/web/GroupDetailsController.java @@ -204,7 +204,7 @@ public class GroupDetailsController { ValidationHelper.throwIfNoAdmin(group, user); // Der eingeloggte User kann sich nicht selbst entfernen (er kann aber verlassen) - if (!userId.equals(user.getId())) { + if (!userId.equals(user.getUserid())) { groupService.deleteUser(new User(userId), group); } diff --git a/src/main/java/mops/gruppen2/web/SearchAndInviteController.java b/src/main/java/mops/gruppen2/web/SearchAndInviteController.java index 34858ab..db51f2c 100644 --- a/src/main/java/mops/gruppen2/web/SearchAndInviteController.java +++ b/src/main/java/mops/gruppen2/web/SearchAndInviteController.java @@ -71,12 +71,12 @@ public class SearchAndInviteController { // Gruppe öffentlich if (group.getType() == Type.PUBLIC) { - return "redirect:/gruppen2/details/" + group.getId(); + return "redirect:/gruppen2/details/" + group.getGroupid(); } // Bereits Mitglied if (ValidationHelper.checkIfMember(group, user)) { - return "redirect:/gruppen2/details/" + group.getId(); + return "redirect:/gruppen2/details/" + group.getGroupid(); } return "link"; diff --git a/src/main/resources/templates/details.html b/src/main/resources/templates/details.html index 907081a..5bf76fc 100644 --- a/src/main/resources/templates/details.html +++ b/src/main/resources/templates/details.html @@ -11,7 +11,7 @@
-

+

@@ -27,7 +27,7 @@ -
+
@@ -40,13 +40,13 @@
Teilnehmer: - +
-
+
+ th:action="@{/gruppen2/details/{id}/edit(id=${group.getGroupid()})}">
diff --git a/src/main/resources/templates/edit.html b/src/main/resources/templates/edit.html index 103a702..fa04b00 100644 --- a/src/main/resources/templates/edit.html +++ b/src/main/resources/templates/edit.html @@ -10,19 +10,19 @@
-

+

-
+
-
+
@@ -50,7 +50,7 @@
-
@@ -63,7 +63,7 @@
-
@@ -76,7 +76,7 @@
- @@ -103,13 +103,13 @@
- -
diff --git a/src/main/resources/templates/fragments/forms.html b/src/main/resources/templates/fragments/forms.html index 990f58e..ba4a19a 100644 --- a/src/main/resources/templates/fragments/forms.html +++ b/src/main/resources/templates/fragments/forms.html @@ -11,7 +11,7 @@ Gruppentitel:
+ th:value="${group?.getTitle()}" required>
@@ -50,8 +50,8 @@
@@ -62,16 +62,16 @@
+ th:disabled="${group != null && group.getLimit().getUserLimit() < 999999} ? 'disabled' : 'false'">
@@ -82,9 +82,9 @@ Limit:
+ th:disabled="${group != null && group.getLimit().getUserLimit() < 999999} ? 'false' : 'disabled'">
Teilnehmer
diff --git a/src/main/resources/templates/fragments/groups.html b/src/main/resources/templates/fragments/groups.html index 4d31d46..adcd03d 100644 --- a/src/main/resources/templates/fragments/groups.html +++ b/src/main/resources/templates/fragments/groups.html @@ -15,9 +15,9 @@ th:if='${group.getType() == lecture}'>Veranstaltung Parent + th:unless="${parent == null || parent?.getTitle() == null|| parent?.getTitle() == ''}" + th:title="${'Die Gruppe gehört zur Veranstaltung ' + parent.getTitle() + '.'}" + th:text="${parent.getTitle()}">Parent Admin + th:if="${group.getRoles().get(member.getUserid()) == admin}">Admin @@ -48,21 +48,21 @@
- + Möchtest du dieser Gruppe beitreten? - + Diese Gruppe hat ihre maximale Teilnehmeranzahl erreicht.
-
+
-
+
Startseite. diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 9873c76..7fb5c52 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -16,8 +16,8 @@
- +
diff --git a/src/main/resources/templates/link.html b/src/main/resources/templates/link.html index d4ff7b2..5a5741a 100644 --- a/src/main/resources/templates/link.html +++ b/src/main/resources/templates/link.html @@ -10,7 +10,7 @@
-

+

diff --git a/src/main/resources/templates/preview.html b/src/main/resources/templates/preview.html index 4393c49..8f8af66 100644 --- a/src/main/resources/templates/preview.html +++ b/src/main/resources/templates/preview.html @@ -10,7 +10,7 @@
-

+

diff --git a/src/main/resources/templates/search.html b/src/main/resources/templates/search.html index 0a9c3cd..21dcd4d 100644 --- a/src/main/resources/templates/search.html +++ b/src/main/resources/templates/search.html @@ -31,8 +31,8 @@
- +
diff --git a/src/test/java/mops/gruppen2/TestBuilder.java b/src/test/java/mops/gruppen2/TestBuilder.java index 1255fe3..3ac61d7 100644 --- a/src/test/java/mops/gruppen2/TestBuilder.java +++ b/src/test/java/mops/gruppen2/TestBuilder.java @@ -230,7 +230,7 @@ public class TestBuilder { Collections.shuffle(shuffle); for (Event event : shuffle) { - removeEvents.add(new DeleteUserEvent(event.getGroupId(), event.getUserId())); + removeEvents.add(new DeleteUserEvent(event.getGroupid(), event.getUserid())); if (removeEvents.size() >= count) { break; @@ -249,7 +249,7 @@ public class TestBuilder { */ public static List deleteUserEvents(Group group) { return group.getMembers().parallelStream() - .map(user -> deleteUserEvent(group.getId(), user.getId())) + .map(user -> deleteUserEvent(group.getGroupid(), user.getUserId())) .collect(Collectors.toList()); } diff --git a/src/test/java/mops/gruppen2/domain/event/CreateGroupEventTest.java b/src/test/java/mops/gruppen2/domain/event/CreateGroupEventTest.java index 24f4c5e..93e4fdf 100644 --- a/src/test/java/mops/gruppen2/domain/event/CreateGroupEventTest.java +++ b/src/test/java/mops/gruppen2/domain/event/CreateGroupEventTest.java @@ -21,7 +21,7 @@ class CreateGroupEventTest { assertThat(group.getMembers()).hasSize(0); assertThat(group.getType()).isEqualTo(Type.PUBLIC); - assertThat(group.getId()).isEqualTo(uuidMock(0)); + assertThat(group.getGroupid()).isEqualTo(uuidMock(0)); assertThat(group.getParent()).isEqualTo(uuidMock(1)); } } diff --git a/src/test/java/mops/gruppen2/domain/event/DeleteGroupEventTest.java b/src/test/java/mops/gruppen2/domain/event/DeleteGroupEventTest.java index 8af3272..db3d022 100644 --- a/src/test/java/mops/gruppen2/domain/event/DeleteGroupEventTest.java +++ b/src/test/java/mops/gruppen2/domain/event/DeleteGroupEventTest.java @@ -22,8 +22,8 @@ class DeleteGroupEventTest { assertThat(group.getMembers()).isEmpty(); assertThat(group.getType()).isEqualTo(null); - assertThat(group.getUserLimit()).isEqualTo(0); - assertThat(group.getId()).isEqualTo(uuidMock(0)); + assertThat(group.getLimit()).isEqualTo(0); + assertThat(group.getGroupid()).isEqualTo(uuidMock(0)); assertThat(group.getParent()).isEqualTo(null); } } diff --git a/src/test/java/mops/gruppen2/domain/event/UpdateUserLimitEventTest.java b/src/test/java/mops/gruppen2/domain/event/UpdateUserLimitEventTest.java index 64bdced..f28ffa9 100644 --- a/src/test/java/mops/gruppen2/domain/event/UpdateUserLimitEventTest.java +++ b/src/test/java/mops/gruppen2/domain/event/UpdateUserLimitEventTest.java @@ -20,7 +20,7 @@ class UpdateUserLimitEventTest { Group group = apply(createEvent, updateEvent); - assertThat(group.getUserLimit()).isEqualTo(5); + assertThat(group.getLimit()).isEqualTo(5); } @Test diff --git a/src/test/java/mops/gruppen2/domain/service/EventStoreServiceTest.java b/src/test/java/mops/gruppen2/domain/service/EventStoreServiceTest.java index b943017..5b00a69 100644 --- a/src/test/java/mops/gruppen2/domain/service/EventStoreServiceTest.java +++ b/src/test/java/mops/gruppen2/domain/service/EventStoreServiceTest.java @@ -72,8 +72,8 @@ class EventStoreServiceTest { EventDTO dto = EventStoreService.getDTOFromEvent(event); - assertThat(dto.getGroup_id()).isEqualTo(event.getGroupId().toString()); - assertThat(dto.getUser_id()).isEqualTo(event.getUserId()); + assertThat(dto.getGroup_id()).isEqualTo(event.getGroupid().toString()); + assertThat(dto.getUser_id()).isEqualTo(event.getUserid()); assertThat(dto.getEvent_id()).isEqualTo(null); assertThat(dto.getEvent_type()).isEqualTo("CreateGroupEvent"); } diff --git a/src/test/java/mops/gruppen2/domain/service/GroupServiceTest.java b/src/test/java/mops/gruppen2/domain/service/GroupServiceTest.java index abfb15d..ac09bc0 100644 --- a/src/test/java/mops/gruppen2/domain/service/GroupServiceTest.java +++ b/src/test/java/mops/gruppen2/domain/service/GroupServiceTest.java @@ -108,8 +108,8 @@ class GroupServiceTest { List groupIds = Arrays.asList(uuidMock(0), uuidMock(1)); assertThat(eventStoreService.findGroupEvents(groupIds)).hasSize(2); - assertThat(eventStoreService.findGroupEvents(groupIds).get(0).getGroupId()).isEqualTo(uuidMock(0)); - assertThat(eventStoreService.findGroupEvents(groupIds).get(1).getGroupId()).isEqualTo(uuidMock(1)); + assertThat(eventStoreService.findGroupEvents(groupIds).get(0).getGroupid()).isEqualTo(uuidMock(0)); + assertThat(eventStoreService.findGroupEvents(groupIds).get(1).getGroupid()).isEqualTo(uuidMock(1)); } //TODO: ProjectionServiceTest diff --git a/src/test/java/mops/gruppen2/web/APIControllerTest.java b/src/test/java/mops/gruppen2/web/APIControllerTest.java index 0851269..dad8e69 100644 --- a/src/test/java/mops/gruppen2/web/APIControllerTest.java +++ b/src/test/java/mops/gruppen2/web/APIControllerTest.java @@ -161,7 +161,7 @@ class APIControllerTest { void getGroupFromId_singleGroup() { eventStoreService.saveAll(createPrivateGroupEvent(uuidMock(0))); - assertThat(apiController.getApiGroup(uuidMock(0).toString()).getId()).isEqualTo(uuidMock(0)); + assertThat(apiController.getApiGroup(uuidMock(0).toString()).getGroupid()).isEqualTo(uuidMock(0)); } @Test