You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.5 KiB

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());
}
}