package org.example.controller; import org.example.domain.Bike; import org.example.domain.User; import org.example.repository.BikeRepository; import org.example.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Optional; @RestController @RequestMapping(("api")) public class BikeController { @Autowired UserRepository userRepository; @Autowired BikeRepository bikeRepository; @RequestMapping("/getAllBikes") @ResponseBody public List getBikesList() { return bikeRepository.findAll(); } @RequestMapping("/createNewBike/{price}") public void createNewBike(@PathVariable int price) { bikeRepository.save(new Bike( null, null, price, null )); } @RequestMapping("/rentABike/{login}/{bikeId}") public void rentABike(@PathVariable String login, @PathVariable Long bikeId, @RequestBody Bike newDataBike) { Optional bike = bikeRepository.findById(bikeId); User user = userRepository.findByLogin(login); System.out.println("Bike rented"); if (bike.isPresent()) { System.out.println("Bike present"); Bike bike1 = bike.get(); bike1.setRentedFrom(newDataBike.getRentedFrom()); bike1.setRentedTo(newDataBike.getRentedTo()); bike1.setPrice(newDataBike.getPrice()); bike1.setUser(user); bikeRepository.save(bike1); System.out.println("Bike rented"); } } @RequestMapping("/payForABike/{bikeId}") public boolean payForABike(@PathVariable Long bikeId) { Optional bike = bikeRepository.findById(bikeId); Bike bikeObject = bike.get(); if (bikeObject.getUser() == null) return false; bikeObject.setPaid(true); bikeRepository.save(bikeObject); return true; } }