BikeController.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package org.example.controller;
  2. import org.example.domain.Bike;
  3. import org.example.domain.User;
  4. import org.example.repository.BikeRepository;
  5. import org.example.repository.UserRepository;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.web.bind.annotation.*;
  8. import java.util.List;
  9. import java.util.Optional;
  10. @RestController
  11. @RequestMapping(("api"))
  12. public class BikeController {
  13. @Autowired
  14. UserRepository userRepository;
  15. @Autowired
  16. BikeRepository bikeRepository;
  17. @RequestMapping("/getAllBikes")
  18. @ResponseBody
  19. public List<Bike> getBikesList() {
  20. return bikeRepository.findAll();
  21. }
  22. @RequestMapping("/createNewBike/{price}")
  23. public void createNewBike(@PathVariable int price) {
  24. bikeRepository.save(new Bike(
  25. null,
  26. null,
  27. price,
  28. null
  29. ));
  30. }
  31. @RequestMapping("/rentABike/{login}/{bikeId}")
  32. public void rentABike(@PathVariable String login, @PathVariable Long bikeId, @RequestBody Bike newDataBike) {
  33. Optional<Bike> bike = bikeRepository.findById(bikeId);
  34. User user = userRepository.findByLogin(login);
  35. System.out.println("Bike rented");
  36. if (bike.isPresent()) {
  37. System.out.println("Bike present");
  38. Bike bike1 = bike.get();
  39. bike1.setRentedFrom(newDataBike.getRentedFrom());
  40. bike1.setRentedTo(newDataBike.getRentedTo());
  41. bike1.setPrice(newDataBike.getPrice());
  42. bike1.setUser(user);
  43. bikeRepository.save(bike1);
  44. System.out.println("Bike rented");
  45. }
  46. }
  47. @RequestMapping("/payForABike/{bikeId}")
  48. public boolean payForABike(@PathVariable Long bikeId) {
  49. Optional<Bike> bike = bikeRepository.findById(bikeId);
  50. Bike bikeObject = bike.get();
  51. if (bikeObject.getUser() == null) return false;
  52. bikeObject.setPaid(true);
  53. bikeRepository.save(bikeObject);
  54. return true;
  55. }
  56. }