Commit 11f308f3 authored by Khai Yuan ​Liew's avatar Khai Yuan ​Liew

[AFP-60] Start work on bulkSearchSKU endpoint

parent 0f54d0d0
File added
File added
...@@ -11,6 +11,7 @@ import reactor.core.publisher.Flux; ...@@ -11,6 +11,7 @@ import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
@RestController @RestController
@RequestMapping("/api/promos") @RequestMapping("/api/promos")
...@@ -40,9 +41,8 @@ public class PromotionsController { ...@@ -40,9 +41,8 @@ public class PromotionsController {
} }
@PostMapping("/bulkSearch") @PostMapping("/bulkSearch")
public Flux<ResponseEntity<PromotionDto>> bulkSearchPromotionsByItemSku(){ public ResponseEntity<Flux<PromotionDto>> bulkSearchPromotionsByItemSku(@RequestBody List<String> skus){
//TODO: bulk search by list of item SKUs return ResponseEntity.ok(promotionService.bulkSearchSKU(skus));
return null;
} }
@PutMapping("/{promoId}") @PutMapping("/{promoId}")
......
...@@ -5,6 +5,9 @@ import com.nisum.ascend.promotions.repository.PromotionRepository; ...@@ -5,6 +5,9 @@ import com.nisum.ascend.promotions.repository.PromotionRepository;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import reactor.core.scheduler.Schedulers;
import java.util.List;
@Service @Service
public class PromotionService { public class PromotionService {
...@@ -19,4 +22,19 @@ public class PromotionService { ...@@ -19,4 +22,19 @@ public class PromotionService {
public Flux<PromotionDto> findPromotionsByProductSku(String sku){ public Flux<PromotionDto> findPromotionsByProductSku(String sku){
return promotionRepository.findByProductSku(sku).map(PromotionDto::generateDtoFromPromotion); return promotionRepository.findByProductSku(sku).map(PromotionDto::generateDtoFromPromotion);
} }
public Flux<PromotionDto> bulkSearchSKU(List<String> skus){
// skus.stream().map(sku -> findPromotionsByProductSku(sku));
// return Flux.fromStream(skus.stream().map(sku -> findPromotionsByProductSku(sku)));
return null;
// return Flux.fromIterable(skus)
// .map(sku -> {
// return findPromotionsByProductSku(sku);
// });
}
} }
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