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
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.server.user.web.ChangeUserRequest;
|
|
import de.fd.fh.server.user.web.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());
|
|
}
|
|
}
|