Я изучаю реактивное программирование и spring-webflux, но я не знаю, как вернуть Flux, зависящий от разрешения Mono.
interface FooRepository : ReactiveMongoRepository<Foo,String> {
fun findAllByCreatedBy(email: String): Flux<Foo>
}
fun getCurrentUser() = ReactiveSecurityContextHolder.getContext()
.map { ctx -> ctx.authentication.principal }
.cast(UsernamePasswordAuthenticationToken::class.java)
.map(UsernamePasswordAuthenticationToken::getPrincipal)
.cast(User::class.java)
.map(User::email)
fun list(): Flux<ResponseEntity<Foo>> {
val fooes = findAllByCreatedBy(getCurrentUser()) // This not work because getCurrenUser() returns a Mono<String>
return fooes.map { o -> ResponseEntity(o, HttpStatus.OK)
}
Как мне ждать или связывать getCurrentUser () вывод с помощью findAllByCreatedBy ()?