Сервисы – код

Сервисы – код


@Slf4j

@AllArgsConstructor

@Service

public class UserService implements ReactiveUserDetailsService {

...

  @Override

  public Mono findByUsername(String username) {

  return userRepository.findByUsernameWithQuery(username).switchIfEmpty(

        Mono.error(new UsernameNotFoundException(username))

    ).cast(UserDetails.class);

  }

  public Mono addUser(final User user) {

    user.setRoleId(USER_ROLE_ID);

    user.setPassword(encoder.encode(user.getPassword()));

    return userRepository.findByUsernameWithQuery(user.getUsername()).flatMap((el) ->

        Mono.error(new UserAlreadyExistsException(user.getUsername()))

    ).switchIfEmpty(

        Mono.defer(() -> userRepository.save(user))

    );

  }

Report Page