package net.sevecek.dailyplanet;

import java.util.*;
import javax.validation.*;
import org.springframework.beans.factory.annotation.*;
import org.springframework.stereotype.*;
import org.springframework.validation.*;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.*;

@Controller
public class AutorController {

    @Autowired
    private AutorRepository poskytovatelDat;

    @RequestMapping(value = "/autori/all.html", method = RequestMethod.GET)
    public ModelAndView zobrazVsechnyAutory() {
        ModelAndView drzacekNaSablonuAData;
        drzacekNaSablonuAData = new ModelAndView(
                "/WEB-INF/view/autori/all.jsp");

        List<Autor> seznamAutoru = poskytovatelDat.findAll();

        drzacekNaSablonuAData.addObject("autori", seznamAutoru);
        return drzacekNaSablonuAData;
    }

    @RequestMapping(value = "/autori/{autorId:[0-9a-f\\-]{36}}.html", method = RequestMethod.GET)
    public ModelAndView zobrazEditaciAutora(@PathVariable("autorId") UUID id) {
        ModelAndView drzacekNaSablonuAData;
        drzacekNaSablonuAData = new ModelAndView(
                "/WEB-INF/view/autori/edit.jsp");

        Autor jedenAutor = poskytovatelDat.findById(id);

        drzacekNaSablonuAData.addObject("autor", jedenAutor);
        return drzacekNaSablonuAData;
    }

    @SuppressWarnings("deprecation")
    @RequestMapping(value = "/autori/{autorId:[0-9a-f\\-]{36}}.html", method = RequestMethod.POST)
    public ModelAndView zpracujEditaciAutora(
            @PathVariable("autorId") UUID id,
            @Valid @ModelAttribute("autor") Autor vyplnenyAutor,
            Errors validacniChyby) {
        vyplnenyAutor.setId(id);
        if (validacniChyby.hasErrors()) {
            ModelAndView drzacekNaSablonuAData;
            drzacekNaSablonuAData = new ModelAndView(
                    "/WEB-INF/view/autori/edit.jsp");
            return drzacekNaSablonuAData;
        }

        poskytovatelDat.update(vyplnenyAutor);

        ModelAndView drzacekNaSablonuAData;
        drzacekNaSablonuAData = new ModelAndView(
                "redirect:/autori/all.html");
        return drzacekNaSablonuAData;
    }
}
