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.

56 lines
1.5 KiB

3 years ago
3 years ago
3 years ago
3 years ago
  1. package de.fd.fh.server.user;
  2. import de.fd.fh.server.user.events.ChangePasswordEvent;
  3. import de.fd.fh.server.user.events.ChangeUserNameEvent;
  4. import de.fd.fh.shared.network.messages.ChangeUserRequest;
  5. import de.fd.fh.shared.network.messages.UserRequest;
  6. import lombok.RequiredArgsConstructor;
  7. import java.util.Observable;
  8. @RequiredArgsConstructor
  9. public class UserService extends Observable
  10. {
  11. private final UserRepository userRepository;
  12. public User changePlayer(final UserId userId, final ChangeUserRequest message)
  13. {
  14. User user = userRepository.findUserById(userId);
  15. if (message.getPassword() != null)
  16. {
  17. setChanged();
  18. notifyObservers(new ChangePasswordEvent(userId, message.getPassword()));
  19. }
  20. if (message.getName() != null)
  21. {
  22. if (userRepository.findUserByName(message.getName()) == null)
  23. {
  24. user.rename(message.getName());
  25. userRepository.save(user);
  26. setChanged();
  27. notifyObservers(new ChangeUserNameEvent(userId, message.getName()));
  28. }
  29. }
  30. return user;
  31. }
  32. public User getPlayer(final UserId id)
  33. {
  34. return userRepository.findUserById(id);
  35. }
  36. public UserRequest getSmallPlayer(final UserId userId)
  37. {
  38. final User user = userRepository.findUserById(userId);
  39. if(user == null)
  40. {
  41. return null;
  42. }
  43. return new UserRequest(user.getId().getIdentifier(), user.getName());
  44. }
  45. }