From 429208eff5ecf8f9826575bd7968220594c02e75 Mon Sep 17 00:00:00 2001 From: bababebr Date: Sun, 12 Nov 2023 15:01:09 +0300 Subject: [PATCH] feat: add filtration on CargoType for "/cargo/all" GET endpoint. --- .../src/main/java/ru/oil/cargo/CargoController.java | 5 +++-- .../src/main/java/ru/oil/cargo/CargoRepository.java | 4 ++++ .../src/main/java/ru/oil/cargo/CargoService.java | 9 +++++++-- .../src/main/java/ru/oil/cargo/ICargoService.java | 3 ++- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/crude-server/src/main/java/ru/oil/cargo/CargoController.java b/crude-server/src/main/java/ru/oil/cargo/CargoController.java index 166b636..9f6c4c0 100644 --- a/crude-server/src/main/java/ru/oil/cargo/CargoController.java +++ b/crude-server/src/main/java/ru/oil/cargo/CargoController.java @@ -3,6 +3,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import ru.oil.cargo.dto.CargoDto; +import ru.oil.enums.CargoType; import javax.validation.Valid; import java.util.List; @@ -25,8 +26,8 @@ public CargoDto add(@Valid @RequestBody CargoDto cargoDto) { } @GetMapping("/all") - public List getAll() { - return cargoService.getAll(); + public List getAll(@RequestParam(required = false) CargoType type) { + return cargoService.getAll(type); } @PutMapping("/update") diff --git a/crude-server/src/main/java/ru/oil/cargo/CargoRepository.java b/crude-server/src/main/java/ru/oil/cargo/CargoRepository.java index 28f967c..326db2c 100644 --- a/crude-server/src/main/java/ru/oil/cargo/CargoRepository.java +++ b/crude-server/src/main/java/ru/oil/cargo/CargoRepository.java @@ -2,10 +2,14 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import ru.oil.enums.CargoType; +import java.util.List; import java.util.Optional; @Repository public interface CargoRepository extends JpaRepository { Optional findByName(String name); + + List findAllByType(CargoType type); } diff --git a/crude-server/src/main/java/ru/oil/cargo/CargoService.java b/crude-server/src/main/java/ru/oil/cargo/CargoService.java index 70af983..558dac2 100644 --- a/crude-server/src/main/java/ru/oil/cargo/CargoService.java +++ b/crude-server/src/main/java/ru/oil/cargo/CargoService.java @@ -3,6 +3,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import ru.oil.cargo.dto.CargoDto; +import ru.oil.enums.CargoType; import ru.oil.units.api.Api; import ru.oil.units.temperature.Temperature; @@ -54,8 +55,12 @@ public CargoDto update(CargoDto cargoDto, Long id) { } @Override - public List getAll() { - return repository.findAll().stream().map(CargoMapper::cargoToDto).collect(Collectors.toList()); + public List getAll(CargoType type) { + if (type == null) { + return repository.findAll().stream().map(CargoMapper::cargoToDto).collect(Collectors.toList()); + } else { + return repository.findAllByType(type).stream().map(CargoMapper::cargoToDto).collect(Collectors.toList()); + } } @Override diff --git a/crude-server/src/main/java/ru/oil/cargo/ICargoService.java b/crude-server/src/main/java/ru/oil/cargo/ICargoService.java index c4d3aef..f9efef4 100644 --- a/crude-server/src/main/java/ru/oil/cargo/ICargoService.java +++ b/crude-server/src/main/java/ru/oil/cargo/ICargoService.java @@ -2,6 +2,7 @@ import ru.oil.cargo.dto.CargoDto; import org.springframework.stereotype.Service; +import ru.oil.enums.CargoType; import java.util.List; @@ -10,7 +11,7 @@ public interface ICargoService { CargoDto add(CargoDto cargoDto); - List getAll(); + List getAll(CargoType type); CargoDto getByName(String name);