package com.testdb.webdb; import com.testdb.model.Film; import com.testdb.repository.FilmRepository; import com.testdb.repository.LanguageRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class FrontController { @Autowired private FilmRepository filmRepo; @Autowired private LanguageRepository langRepo; @RequestMapping("/") public String index(@RequestParam(required = false) Float min, @RequestParam(required = false) Float max,Model model) { if(min!=null && max!=null) model.addAttribute("films", filmRepo.findByRentalRateBetween(min,max)); else model.addAttribute("films", filmRepo.findAll()); return "index"; } @RequestMapping({"/film","/film/{id}"}) public String detailFilm(@PathVariable(required = false) Long id, Model model) { Film film ; if (id==null) { film = new Film(); } else { film = filmRepo.getById(id); } model.addAttribute("film", film); model.addAttribute("languages", langRepo.findAll()); return "film"; } @PostMapping({"/film","/film/{id}"}) public String modificarFilm(@PathVariable(required = false) Long id, @ModelAttribute Film aeditar, BindingResult result) { aeditar.setActors(filmRepo.getById(id).getActors()); System.out.println(filmRepo.save(aeditar).getId()); return "redirect:/"; } @RequestMapping("/film/{id}/language") public String lenguajePelicula(@PathVariable Long id, Model model) { Film film = filmRepo.findById(id).orElse(null); model.addAttribute("lang", film==null?"":film.getLang().getName()); return "film_language"; } @RequestMapping("/filmactor/") public String filmActor(Model model) { model.addAttribute("fas", filmRepo.joinFilmAndActor()); return "film_actor"; } @RequestMapping("/filmbylanguage/{id}") public String filmByLanguage(Model model,@PathVariable Long id) { model.addAttribute("films", filmRepo.getFilmByLanguage(langRepo.getById(id))) ; return "index"; } }