Ocena kodu - moduł rejestracji w Springu

0

Cześć, tworzę aplikację internetową w Springu i zrobiłem do niej backendowy moduł rejestracji użytkowników przez email oraz potwierdzanie maila przez confirmation link.
Jest to mój pierwszy w pełni zrobiony moduł rejestracji i bardzo bym prosił Was o ocenę kodu ;)
https://github.com/jedras55/betliga/pull/3
Pozdrawiam

1

Generalnie standardowy projekt w starym Springu, całkiem chlujny. Ten podział na pakiety service, dto, controller tylko trochę bez sensu. Jakby tak wszystkie klasy account wrzucić bezpośrednio w pakiet account to nadal by działało i naprawdę dałbyś radę Controller znaleźć.

Mini hint.
Ten kod ponizej można trochę odgłupić:

 public boolean confirmAccount(String username, String confirmationKey) {
    boolean confirmResult = false;
    User user = userRepository.findByUsername(username);
    ConfirmationKey userConfirmationKey = confirmationKeyRepository.findByUser(user);
    if (userConfirmationKey != null
            && userConfirmationKey.getConfirmationKey().equals(confirmationKey)) {
      user.setConfirmed(true);
      userRepository.save(user);
      confirmationKeyRepository.delete(userConfirmationKey);
      confirmResult = true;
    }
    return confirmResult;
  }

Twoje DAO (zwane ConfirmationKeyRepository ) może zwracać optionala.

Optional<UserConfirmationKey > findByUser(User user);

I wtedy: (EDIT - był bug trochę pomieszałem najpierw).

public boolean confirmAccount(String username, String confirmationKey) {
    User user = userRepository.findByUsername(username);
    return confirmationKeyRepository.findByUser(user).map( key -> {
            if  ( key.getConfirmationKey().equals(confirmationKey)) {
                user.setConfirmed(true);
                confirmationKeyRepository.delete(key);
                return true;
            } else {
               return false;
            }
    }).orElse(false);
}

Robi to samo. Nie ma flagi. Przy okazji nie wywołuje userRepository.save. Bo nie ma potrzeby.

1 użytkowników online, w tym zalogowanych: 0, gości: 1