Commit 6db36a9a authored by dbhuller's avatar dbhuller

[AFP-37] getting item data (Items ordered) from each order [@dbhuller]

parent 2e856257
Pipeline #1696 failed with stage
in 38 seconds
package com.afp.ordermanagement.controller;
import com.afp.ordermanagement.model.Item;
import com.afp.ordermanagement.model.Order;
import com.afp.ordermanagement.reactivekafkaservice.Sender;
import com.afp.ordermanagement.service.OrderService;
......@@ -10,6 +11,8 @@ import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import java.util.List;
@RestController
@RequestMapping("/api")
@CrossOrigin
......@@ -60,5 +63,9 @@ public class OrderController {
.defaultIfEmpty(ResponseEntity.notFound().build());
}
@GetMapping("/items")
public Mono<List<Item>> getItems() {
return orderService.getItems();
}
}
package com.afp.ordermanagement.service;
import com.afp.ordermanagement.model.Item;
import com.afp.ordermanagement.model.Order;
import com.afp.ordermanagement.model.OrderStatus;
import com.afp.ordermanagement.repository.OrderRepository;
......@@ -8,6 +9,9 @@ import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class OrderService {
......@@ -50,4 +54,19 @@ public class OrderService {
return orderRepository.save(existingOrder);
});
}
public Mono<List<Item>> getItems() {
Flux<Order> orderFlux = orderRepository.findAll();
Mono<List<Item>> itemsMono = orderFlux.collectList().map(ordersList -> {
List<List<Item>> itemList =
ordersList.stream()
.filter(order -> order.getOrderItems() != null)
.map(order -> order.getOrderItems())
.collect(
Collectors.toList());
List<Item> items = itemList.stream().flatMap(List::stream).collect(Collectors.toList());
return items;
});
return itemsMono;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment