refactor UpdateRoleEvent-handler
This commit is contained in:
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user