From b9822166cb9b6ba431b682eb6efdce7eb9b23ca1 Mon Sep 17 00:00:00 2001 From: Oscar Gonzalez Date: Wed, 1 Feb 2023 10:56:58 -0300 Subject: [PATCH] se agrega BeneficioController: listar, crear, actualizar --- curriculumsearch/src/main/java/com/roshka/controller/BeneficioController.java | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 curriculumsearch/src/main/java/com/roshka/controller/BeneficioController.java diff --git a/curriculumsearch/src/main/java/com/roshka/controller/BeneficioController.java b/curriculumsearch/src/main/java/com/roshka/controller/BeneficioController.java new file mode 100644 index 0000000..64ff063 --- /dev/null +++ b/curriculumsearch/src/main/java/com/roshka/controller/BeneficioController.java @@ -0,0 +1,66 @@ +package com.roshka.controller; + +import com.roshka.modelo.Beneficio; +import com.roshka.repositorio.BeneficioRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +@Controller +@RequestMapping("/beneficios") +public class BeneficioController { + + BeneficioRepository beneficioRepository; + + + @Autowired + public BeneficioController(BeneficioRepository beneficioRepository){ + this.beneficioRepository = beneficioRepository; + } + + @GetMapping(path = {"/agregar","/modificar/{id}"}) + public String addBeneficioView(Model model, @PathVariable(required = false) Long id) { + + + if(id == null) model.addAttribute("beneficio", new Beneficio()); + else model.addAttribute("beneficio", beneficioRepository.getById(id)); + return "beneficio-form"; + } + + @RequestMapping() + public String menuBeneficios(Model model,@RequestParam(required = false) String nombre,@RequestParam(defaultValue = "0")Integer nroPagina) { + final Integer CANTIDAD_POR_PAGINA = 10; + Pageable page = PageRequest.of(nroPagina,CANTIDAD_POR_PAGINA,Sort.by("id")); + + if(nombre == null || nombre.trim().isEmpty()) { + Page beneficioPag=beneficioRepository.findAllBeneficio(page); + model.addAttribute("beneficios", beneficioPag.getContent()); + model.addAttribute("pages", beneficioPag.getTotalPages()); + } + else { + Page beneficioPag=beneficioRepository.findByTituloContainingIgnoreCase(nombre.trim(),page); + model.addAttribute("pages", beneficioPag.getTotalPages()); + model.addAttribute("beneficios", beneficioPag.getContent()); + } + return "beneficios"; + } + + @PostMapping(path = {"/agregar","/modificar/{id}"}) + public String addBeneficio(@Valid @ModelAttribute Beneficio beneficio, BindingResult result, @PathVariable(required = false) Long id, Model model) { + if(result.hasErrors() || (id==null && beneficioRepository.existsByTituloIgnoreCase(beneficio.getTitulo()))){ + model.addAttribute("mismoNombre", true); + return "beneficio-form"; + } + if(id != null ) beneficio.setId(id); + beneficioRepository.save(beneficio); + return "redirect:/beneficios"; + } +} \ No newline at end of file -- libgit2 0.26.0