Mam taką metodę do rejestracji użytkowników:
public Mono<Either<AppError, UserDTO> > registerUser(RegisterUserDTO dto) {
Mono<Either<AppError, Mono<UserDTO> > > result = userFactory
.create(dto.username(), dto.password(), UserRole.COMMON)
.map(it -> it
.map(user -> reactiveUserRepository
.add(user)
.map(User::toDTO)
)
);
return result;
}
Metoda create z UserFactory zwraca Mono<Either<AppError, User>> a metoda add z ReactiveUserRepository Mono<User > i kończę z tym potworkiem Mono<Either<AppError, Mono<UserDTO> > > a chciałbym oczywiscie Mono<Either<AppError, UserDTO> >. Da się to jakoś zrobić?
getOrElseGet
XD