package de.fd.fh.server.user; import de.fd.fh.server.user.events.ChangePasswordEvent; import de.fd.fh.server.user.events.ChangeUserNameEvent; import de.fd.fh.shared.network.messages.ChangeUserRequest; import de.fd.fh.shared.network.messages.UserRequest; import lombok.RequiredArgsConstructor; import java.util.Observable; @RequiredArgsConstructor public class UserService extends Observable { private final UserRepository userRepository; public User changePlayer(final UserId userId, final ChangeUserRequest message) { User user = userRepository.findUserById(userId); if (message.getPassword() != null) { setChanged(); notifyObservers(new ChangePasswordEvent(userId, message.getPassword())); } if (message.getName() != null) { if (userRepository.findUserByName(message.getName()) == null) { user.rename(message.getName()); userRepository.save(user); setChanged(); notifyObservers(new ChangeUserNameEvent(userId, message.getName())); } } return user; } public User getPlayer(final UserId id) { return userRepository.findUserById(id); } public UserRequest getSmallPlayer(final UserId userId) { final User user = userRepository.findUserById(userId); if(user == null) { return null; } return new UserRequest(user.getId().getIdentifier(), user.getName()); } }