From 1a5413347225417bc6584fd03fbee04dc1c1c0f7 Mon Sep 17 00:00:00 2001 From: pivovarit Date: Fri, 5 May 2017 17:50:36 +0200 Subject: [PATCH] Refactor multipart upload --- .../com/baeldung/functional/FormHandler.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/spring-5/src/main/java/com/baeldung/functional/FormHandler.java b/spring-5/src/main/java/com/baeldung/functional/FormHandler.java index 71056a0de7..857d22a67f 100644 --- a/spring-5/src/main/java/com/baeldung/functional/FormHandler.java +++ b/spring-5/src/main/java/com/baeldung/functional/FormHandler.java @@ -1,10 +1,12 @@ package com.baeldung.functional; +import org.springframework.core.io.buffer.DataBuffer; import org.springframework.util.MultiValueMap; import org.springframework.web.reactive.function.server.ServerRequest; import org.springframework.web.reactive.function.server.ServerResponse; import reactor.core.publisher.Mono; +import java.util.List; import java.util.concurrent.atomic.AtomicLong; import static org.springframework.web.reactive.function.BodyExtractors.toDataBuffers; @@ -28,13 +30,15 @@ public class FormHandler { return request .body(toDataBuffers()) .collectList() - .flatMap(dataBuffers -> { - AtomicLong atomicLong = new AtomicLong(0); - dataBuffers.forEach(d -> atomicLong.addAndGet(d - .asByteBuffer() - .array().length)); + .flatMap(dataBuffers -> ok() + .body(fromObject(extractData(dataBuffers).toString()))); + } - return ok().body(fromObject(atomicLong.toString())); - }); + private AtomicLong extractData(List dataBuffers) { + AtomicLong atomicLong = new AtomicLong(0); + dataBuffers.forEach(d -> atomicLong.addAndGet(d + .asByteBuffer() + .array().length)); + return atomicLong; } }