47 lines
1.1 KiB
Java
47 lines
1.1 KiB
Java
package mops.gruppen2.domain.event;
|
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.Value;
|
|
import lombok.extern.log4j.Log4j2;
|
|
import mops.gruppen2.domain.exception.LastAdminException;
|
|
import mops.gruppen2.domain.exception.UserNotFoundException;
|
|
import mops.gruppen2.domain.model.group.Group;
|
|
import mops.gruppen2.infrastructure.GroupCache;
|
|
|
|
import java.util.UUID;
|
|
|
|
/**
|
|
* Entfernt ein einzelnes Mitglied einer Gruppe.
|
|
*/
|
|
@Log4j2
|
|
@Value
|
|
@AllArgsConstructor
|
|
public class KickMemberEvent extends Event {
|
|
|
|
public KickMemberEvent(UUID groupId, String exec, String target) {
|
|
super(groupId, exec, target);
|
|
}
|
|
|
|
@Override
|
|
protected void updateCache(GroupCache cache, Group group) {
|
|
cache.usersRemove(target, group);
|
|
}
|
|
|
|
@Override
|
|
protected void applyEvent(Group group) throws UserNotFoundException, LastAdminException {
|
|
group.kickMember(target);
|
|
|
|
log.trace("\t\t\t\t\tNeue Members: {}", group.getMembers());
|
|
}
|
|
|
|
@Override
|
|
public String format() {
|
|
return "Mitglied entfernt: " + target + ".";
|
|
}
|
|
|
|
@Override
|
|
public String type() {
|
|
return EventType.KICKMEMBER.toString();
|
|
}
|
|
}
|