1

refactor UpdateRoleEvent-handler

This commit is contained in:
Christoph
2020-03-06 22:18:44 +01:00
parent cc174b3269
commit b94432eec6

View File

@ -4,55 +4,68 @@ import lombok.EqualsAndHashCode;
import lombok.Getter; import lombok.Getter;
import mops.gruppen2.domain.event.*; import mops.gruppen2.domain.event.*;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@EqualsAndHashCode(callSuper=false) /**
* Repräsentiert den aggregierten Zustand einer Gruppe.
*/
@EqualsAndHashCode(callSuper = false)
@Getter @Getter
public class Group extends Aggregate { public class Group extends Aggregate {
private String title; private String title;
private String description; private String description;
private List<User> members; private List<User> members;
private Map<User, Role> roles; private Map<User, Role> roles;
public Group(CreateGroupEvent event) { public Group(CreateGroupEvent event) {
super(event.getGroup_id()); super(event.getGroup_id());
this.title = event.getGroupTitle(); this.title = event.getGroupTitle();
this.description = event.getGroupDescription(); this.description = event.getGroupDescription();
this.members = new ArrayList<>(); this.members = new ArrayList<>();
this.roles = new HashMap<>(); this.roles = new HashMap<>();
} }
private void applyEvent(UpdateRoleEvent event) { private void applyEvent(UpdateRoleEvent event) {
members.stream() User user;
.filter(user -> user.getUser_id().equals(event.getUser_id()))
.findFirst()
.ifPresentOrElse(user -> roles.put(user, event.getNewRole()),
() -> System.out.println("UserNotFoundException"));
}
private void applyEvent(AddUserEvent event){ Optional<User> userOptional = members.stream()
User user = new User(event.getUser_id(), event.getGivenname(), event.getFamilyname(), event.getEmail()); .filter(u -> u.getUser_id().equals(event.getUser_id()))
.findFirst();
this.members.add(user); if (userOptional.isPresent()) {
} user = userOptional.get();
} else {
System.out.println("UserNotFoundException");
return;
}
private void applyEvent(UpdateGroupTitleEvent event) { if (roles.containsKey(user) && event.getNewRole() == Role.STUDENT) {
this.title = event.getNewGroupTitle(); roles.remove(user);
} } else {
roles.put(user, event.getNewRole());
}
}
private void applyEvent(UpdateGroupDescriptionEvent event) { private void applyEvent(AddUserEvent event) {
this.description = event.getNewGroupDescription(); User user = new User(event.getUser_id(), event.getGivenname(), event.getFamilyname(), event.getEmail());
}
private void applyEvent(DeleteUserEvent event) { this.members.add(user);
for (User user : members) { }
if (user.getUser_id().equals(event.getUser_id())) {
this.members.remove(user); private void applyEvent(UpdateGroupTitleEvent event) {
break; this.title = event.getNewGroupTitle();
} }
}
} private void applyEvent(UpdateGroupDescriptionEvent event) {
this.description = event.getNewGroupDescription();
}
private void applyEvent(DeleteUserEvent event) {
for (User user : members) {
if (user.getUser_id().equals(event.getUser_id())) {
this.members.remove(user);
break;
}
}
}
} }