diff options
Diffstat (limited to 'src/main/java/org/berzerkula/builddb/controllers/PkgController.java')
-rw-r--r-- | src/main/java/org/berzerkula/builddb/controllers/PkgController.java | 89 |
1 files changed, 49 insertions, 40 deletions
diff --git a/src/main/java/org/berzerkula/builddb/controllers/PkgController.java b/src/main/java/org/berzerkula/builddb/controllers/PkgController.java index 404a58b..56bfebe 100644 --- a/src/main/java/org/berzerkula/builddb/controllers/PkgController.java +++ b/src/main/java/org/berzerkula/builddb/controllers/PkgController.java @@ -1,8 +1,8 @@ package org.berzerkula.builddb.controllers; -import jakarta.persistence.OrderBy; import jakarta.validation.Valid; +import org.berzerkula.builddb.BuilddbConstants; import org.berzerkula.builddb.models.Pkg; import org.berzerkula.builddb.models.PkgDto; import org.berzerkula.builddb.repositories.PkgRepository; @@ -16,7 +16,7 @@ import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import java.util.List; -import java.util.Objects; +import java.util.Optional; @Controller @RequestMapping("/pkgs") @@ -95,24 +95,28 @@ public class PkgController { public String showEditPkgForm(Model model, @RequestParam int id) { try { - Pkg pkg = repo.findById(id).get(); - model.addAttribute("pkg", pkg); - - PkgDto pkgDto = new PkgDto(); - pkgDto.setSequence(pkg.getSequence()); - pkgDto.setName(pkg.getName()); - pkgDto.setVersion(pkg.getVersion()); - pkgDto.setConfigure(pkg.getConfigure()); - pkgDto.setBuild(pkg.getBuild()); - pkgDto.setInstall(pkg.getInstall()); - pkgDto.setSetup(pkg.getSetup()); - pkgDto.setNotes(pkg.getNotes()); - pkgDto.setUrl(pkg.getUrl()); - - model.addAttribute("pkgDto", pkgDto); + + Optional<Pkg> pkgOptional = repo.findById(id); + if (pkgOptional.isPresent()) { + Pkg pkg = pkgOptional.get(); + model.addAttribute("pkg", pkg); + + PkgDto pkgDto = new PkgDto(); + pkgDto.setSequence(pkg.getSequence()); + pkgDto.setName(pkg.getName()); + pkgDto.setVersion(pkg.getVersion()); + pkgDto.setConfigure(pkg.getConfigure()); + pkgDto.setBuild(pkg.getBuild()); + pkgDto.setInstall(pkg.getInstall()); + pkgDto.setSetup(pkg.getSetup()); + pkgDto.setNotes(pkg.getNotes()); + pkgDto.setUrl(pkg.getUrl()); + + model.addAttribute("pkgDto", pkgDto); + } } catch(Exception ex) { - logger.error("Exception: {}", ex.getMessage()); + logger.error(BuilddbConstants.MSG_EXCEPTION, ex.getMessage()); } return "pkgs/edit"; @@ -126,27 +130,30 @@ public class PkgController { @ModelAttribute PkgDto pkgDto, BindingResult result ) { try { - Pkg pkg = repo.findById(id).get(); - model.addAttribute("pkg", pkg); - - if (result.hasErrors()) { - return "pkgs/edit"; + Optional<Pkg> pkgOptional = repo.findById(id); + if (pkgOptional.isPresent()) { + Pkg pkg = pkgOptional.get(); + model.addAttribute("pkg", pkg); + + if (result.hasErrors()) { + return "pkgs/edit"; + } + + pkg.setSequence(pkgDto.getSequence()); + pkg.setName(pkgDto.getName()); + pkg.setVersion(pkgDto.getVersion()); + pkg.setConfigure(pkgDto.getConfigure()); + pkg.setBuild(pkgDto.getBuild()); + pkg.setInstall(pkgDto.getInstall()); + pkg.setSetup(pkgDto.getSetup()); + pkg.setNotes(pkgDto.getNotes()); + pkg.setUrl(pkgDto.getUrl()); + + repo.save(pkg); } - pkg.setSequence(pkgDto.getSequence()); - pkg.setName(pkgDto.getName()); - pkg.setVersion(pkgDto.getVersion()); - pkg.setConfigure(pkgDto.getConfigure()); - pkg.setBuild(pkgDto.getBuild()); - pkg.setInstall(pkgDto.getInstall()); - pkg.setSetup(pkgDto.getSetup()); - pkg.setNotes(pkgDto.getNotes()); - pkg.setUrl(pkgDto.getUrl()); - - repo.save(pkg); - } catch(Exception ex) { - logger.error("Exception: {}", ex.getMessage()); + logger.error(BuilddbConstants.MSG_EXCEPTION, ex.getMessage()); } return "redirect:/pkgs/#" + id; @@ -156,12 +163,14 @@ public class PkgController { public String deletePkg(@RequestParam int id) { try { - Pkg pkg = repo.findById(id).get(); - - repo.delete(pkg); + Optional<Pkg> pkgOptional = repo.findById(id); + if (pkgOptional.isPresent()) { + Pkg pkg = pkgOptional.get(); + repo.delete(pkg); + } } catch (Exception ex) { - logger.error("Exception: {}", ex.getMessage()); + logger.error(BuilddbConstants.MSG_EXCEPTION, ex.getMessage()); } return "redirect:/pkgs/"; |