package com.example.baziproekt.web; import com.example.baziproekt.model.Kompanija; import com.example.baziproekt.model.Proizvodi; import com.example.baziproekt.repository.KomentarNaProizvodRepository; import com.example.baziproekt.repository.KompanijaRepository; import com.example.baziproekt.service.KomentarNaProizvod; import com.example.baziproekt.service.ProizvodiService; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import java.util.List; @Controller @RequestMapping("/proizvodi") public class ProizvodiController { private final ProizvodiService service; private final KompanijaRepository repository; private final KomentarNaProizvod komentari; public ProizvodiController(ProizvodiService service, KompanijaRepository repository, KomentarNaProizvod komentari) { this.service = service; this.repository = repository; this.komentari = komentari; } @GetMapping public String getProizvodiPage( Model model) { List products=service.listAll(); model.addAttribute("proizvodi",products); return "proizvodi"; } @GetMapping("/{id}/edit") public String showEdit(@PathVariable Integer id,Model model) { Proizvodi proizvod=service.findById(id); List kompanii=repository.findAll(); model.addAttribute("proizvod",proizvod); model.addAttribute("kompanii",kompanii); return "proizvodi_edit_form"; } @GetMapping("/add") public String showAdd(Model model) { model.addAttribute("proizvodi",service.listAll()); model.addAttribute("kompanii",repository.findAll()); return "add-product"; } @GetMapping("/{id}/komentiraj") public String showKomentar(@PathVariable Integer id,Model model) { Proizvodi proizvod=service.findById(id); model.addAttribute("proizvod",proizvod); return "komentiraj"; } @PostMapping("/{ids}/comment") public String comment(@PathVariable Integer ids,@RequestParam String ime,@RequestParam String tekst) { this.komentari.create(ids,ime,tekst); return "redirect:/proizvodi"; } @PostMapping("/add") public String createProduct(@RequestParam Integer kolicina,@RequestParam String name,@RequestParam String boja, @RequestParam String karakteristiki,@RequestParam String kompanijaName) { this.service.create(kolicina,name,boja,karakteristiki,kompanijaName); return "redirect:/proizvodi"; } @PostMapping("/{id}") public String update(@PathVariable Integer id, @RequestParam Integer kolicina,@RequestParam String name, @RequestParam String boja,@RequestParam String karakteristiki,@RequestParam String kompanijaName) { this.service.update(id,kolicina,name,boja,karakteristiki,kompanijaName); return "redirect:/proizvodi"; } }