Newer
Older
task-bldg / src / main / java / osm / surveyor / task / city / CityController.java
  1. package osm.surveyor.task.city;
  2.  
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.ui.Model;
  5. import org.springframework.validation.BindingResult;
  6. import org.springframework.validation.annotation.Validated;
  7. import org.springframework.web.bind.annotation.GetMapping;
  8. import org.springframework.web.bind.annotation.ModelAttribute;
  9. import org.springframework.web.bind.annotation.PathVariable;
  10. import org.springframework.web.bind.annotation.PostMapping;
  11.  
  12. import lombok.RequiredArgsConstructor;
  13. import osm.surveyor.task.city.model.City;
  14.  
  15. @RequiredArgsConstructor
  16. @Controller
  17. public class CityController {
  18. private final CityRepository repository;
  19. @GetMapping("/city")
  20. public String showList(Model model) {
  21. model.addAttribute("cities", repository.findAll());
  22. return "cities";
  23. }
  24. @GetMapping("/city/add")
  25. public String addCity(@ModelAttribute City city) {
  26. return "form";
  27. }
  28. @PostMapping("/city/process")
  29. public String process(@Validated @ModelAttribute City city, BindingResult result) {
  30. if (result.hasErrors()) {
  31. return "form";
  32. }
  33.  
  34. repository.save(city);
  35. return "redirect:/city";
  36. }
  37.  
  38. @GetMapping("/city/edit/{citycode}")
  39. public String editCity(@PathVariable String citycode, Model model) {
  40. model.addAttribute("city", repository.findByCitycode(citycode));
  41. return "form";
  42. }
  43.  
  44. @GetMapping("/city/delete/{citycode}")
  45. public String deleteCity(@PathVariable String citycode) {
  46. repository.deleteByCitycode(citycode);
  47. return "redirect:/city";
  48. }
  49. }