Witam serdecznie
Działam dalej w temacie restowych metod. Obecnie chcę napisać metodę, która kasuje wszystkie auta w danym zakresie mocy albo momentu obrotowego.
Tylko nie wiem jak do tego podejść :D. Chciałbym usunąć samochody, które np. mają od 200 km do 400 km.
Może to dla kogoś banał ale proszę o pomoc/ wskazówki :)
public class CarDto {
private Long id;
private String producer;
private String model;
private String engineType;
private Integer displacementCm3;
private Integer powerHp;
private Integer torqueNm;
public Long getId() {
return id;
}
public String getProducer() {
return producer;
}
public String getModel() {
return model;
}
public String getEngineType() {
return engineType;
}
public Integer getDisplacementCm3() {
return displacementCm3;
}
public Integer getPowerHp() {
return powerHp;
}
public Integer getTorqueNm() {
return torqueNm;
}
public void setId(Long id) {
this.id = id;
}
public void setProducer(String producer) {
this.producer = producer;
}
public void setModel(String model) {
this.model = model;
}
public void setEngineType(String engineType) {
this.engineType = engineType;
}
public void setDisplacementCm3(Integer displacementCm3) {
this.displacementCm3 = displacementCm3;
}
public void setPowerHp(Integer powerHp) {
this.powerHp = powerHp;
}
public void setTorqueNm(Integer torqueNm) {
this.torqueNm = torqueNm;
}
}
public interface CarJpaRepository extends JpaRepository<Car, Long> {
List<Car> findAllByProducerAndModel(String producer, String model);
}
import org.modelmapper.ModelMapper;
import org.springframework.web.bind.annotation.*;
import pl.kurs.springmvcrest2.dto.CarDto;
import pl.kurs.springmvcrest2.model.Car;
import pl.kurs.springmvcrest2.repository.CarJpaRepository;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
@RestController
@RequestMapping("/cars")
public class CarController {
private CarJpaRepository carJpaRepository;
private ModelMapper mapper;
public CarController(CarJpaRepository carJpaRepository, ModelMapper mapper) {
this.carJpaRepository = carJpaRepository;
this.mapper = mapper;
}
@GetMapping("/{id}")
public CarDto getById(@PathVariable(name = "id") long id) {
Car loadedCar = carJpaRepository.findById(id).orElseGet(() -> new Car());
return mapper.map(loadedCar, CarDto.class);
}
@GetMapping
public List<CarDto> getAll() {
return carJpaRepository.findAll()
.stream()
.map(x -> mapper.map(x, CarDto.class))
.collect(Collectors.toList());
}
//localhost:8080/cars/customsearch?producer=BMW&model=M3cs
@GetMapping("/customsearch")
public List<CarDto> getAll(@RequestParam(value = "producer") String producer,
@RequestParam(value = "model") String model) {
return carJpaRepository.findAllByProducerAndModel(producer, model)
.stream()
.map(x -> mapper.map(x, CarDto.class))
.collect(Collectors.toList());
}
@DeleteMapping()
public String deleteSpecificCars(@RequestBody List<CarDto> carDtoList) {
List<Long> idList = carDtoList
.stream()
.filter(Objects::nonNull)
.map(x -> x.getId())
.collect(Collectors.toList());
carJpaRepository.deleteAllById(idList);