diff --git a/src/main/java/fr/eni/demo/bll/StockService.java b/src/main/java/fr/eni/demo/bll/StockService.java index cd738ab..355c5b4 100644 --- a/src/main/java/fr/eni/demo/bll/StockService.java +++ b/src/main/java/fr/eni/demo/bll/StockService.java @@ -10,5 +10,6 @@ public interface StockService { void add(Stock game); Optional findById(Long gameId); List findAllByName(String name); + Stock findByRef(String ref); } diff --git a/src/main/java/fr/eni/demo/bll/StockServiceImpl.java b/src/main/java/fr/eni/demo/bll/StockServiceImpl.java index acb94d7..14c0053 100644 --- a/src/main/java/fr/eni/demo/bll/StockServiceImpl.java +++ b/src/main/java/fr/eni/demo/bll/StockServiceImpl.java @@ -3,6 +3,7 @@ package fr.eni.demo.bll; import fr.eni.demo.bo.Stock; import fr.eni.demo.bo.StockCount; import fr.eni.demo.dal.StockRepository; +import jakarta.persistence.EntityNotFoundException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -39,4 +40,13 @@ public class StockServiceImpl implements StockService{ .toList(); return result; } + + @Override + public Stock findByRef(String ref) { + Stock stock = stockRepository.findByRefEQ(ref); + if (stock == null) { + throw new EntityNotFoundException("Ref non valide"); + } + return stock; + } } diff --git a/src/main/java/fr/eni/demo/controller/StockController.java b/src/main/java/fr/eni/demo/controller/StockController.java index 72fb38c..d090010 100644 --- a/src/main/java/fr/eni/demo/controller/StockController.java +++ b/src/main/java/fr/eni/demo/controller/StockController.java @@ -41,6 +41,12 @@ public class StockController { return buildResponse("List stock fetched", true, result); } + @GetMapping("/{ref}") + public ResponseEntity> findByRef(@PathVariable String ref) { + Stock result = stockService.findByRef(ref); + return buildResponse("Stock fetched", true, result); + } + private ResponseEntity> buildResponse(String message, boolean status, Object data) { Map response = new HashMap<>(); response.put("message", message); diff --git a/src/main/java/fr/eni/demo/dal/StockRepository.java b/src/main/java/fr/eni/demo/dal/StockRepository.java index 0f1b568..aab81b2 100644 --- a/src/main/java/fr/eni/demo/dal/StockRepository.java +++ b/src/main/java/fr/eni/demo/dal/StockRepository.java @@ -9,4 +9,5 @@ import java.util.List; @Repository public interface StockRepository extends MongoRepository { List findByNameIsContainingIgnoreCase(String name); + Stock findByRefEQ(String ref); }