From 93ea4faa93756c9b5c1312c6d086028cb8ee7d4c Mon Sep 17 00:00:00 2001 From: William Harrington Date: Wed, 12 Feb 2025 19:50:35 -0600 Subject: Add constants class, use optionals, and other minor issues. --- .../org/berzerkula/builddb/BuilddbConstants.java | 13 ++++ .../org/berzerkula/builddb/builddbConstants.java | 4 - .../builddb/controllers/AccountController.java | 47 ++++++------ .../builddb/controllers/PkgController.java | 89 ++++++++++++---------- .../org/berzerkula/builddb/models/AppUser.java | 2 + .../builddb/services/AppUserService.java | 7 +- 6 files changed, 88 insertions(+), 74 deletions(-) create mode 100644 src/main/java/org/berzerkula/builddb/BuilddbConstants.java delete mode 100644 src/main/java/org/berzerkula/builddb/builddbConstants.java diff --git a/src/main/java/org/berzerkula/builddb/BuilddbConstants.java b/src/main/java/org/berzerkula/builddb/BuilddbConstants.java new file mode 100644 index 0000000..6f4922b --- /dev/null +++ b/src/main/java/org/berzerkula/builddb/BuilddbConstants.java @@ -0,0 +1,13 @@ +package org.berzerkula.builddb; + +public class BuilddbConstants { + + private BuilddbConstants() { + throw new IllegalStateException("Utility class"); + } + + public static final String VIEW_REGISTER = "register"; + + public static final String DTO_REGISTER = "registerDto"; + public static final String MSG_EXCEPTION = "Exception: {}"; +} diff --git a/src/main/java/org/berzerkula/builddb/builddbConstants.java b/src/main/java/org/berzerkula/builddb/builddbConstants.java deleted file mode 100644 index c734667..0000000 --- a/src/main/java/org/berzerkula/builddb/builddbConstants.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.berzerkula.builddb; - -public class builddbConstants { -} diff --git a/src/main/java/org/berzerkula/builddb/controllers/AccountController.java b/src/main/java/org/berzerkula/builddb/controllers/AccountController.java index 6cec175..e833792 100644 --- a/src/main/java/org/berzerkula/builddb/controllers/AccountController.java +++ b/src/main/java/org/berzerkula/builddb/controllers/AccountController.java @@ -1,7 +1,10 @@ package org.berzerkula.builddb.controllers; -import java.util.Date; - +import jakarta.validation.Valid; +import org.berzerkula.builddb.BuilddbConstants; +import org.berzerkula.builddb.models.AppUser; +import org.berzerkula.builddb.models.RegisterDto; +import org.berzerkula.builddb.repositories.AppUserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.Authentication; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @@ -13,11 +16,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PostMapping; -import org.berzerkula.builddb.models.AppUser; -import org.berzerkula.builddb.models.RegisterDto; -import org.berzerkula.builddb.repositories.AppUserRepository; - -import jakarta.validation.Valid; +import java.util.Date; @Controller public class AccountController { @@ -43,7 +42,7 @@ public class AccountController { RegisterDto registerDto = new RegisterDto(); model.addAttribute(registerDto); model.addAttribute("success", false); - return "register"; + return BuilddbConstants.VIEW_REGISTER; } @PostMapping("/register") @@ -55,31 +54,29 @@ public class AccountController { if (!registerDto.getPassword().equals(registerDto.getConfirmPassword())) { result.addError( - new FieldError("registerDto", "confirmPassword" + new FieldError(BuilddbConstants.DTO_REGISTER, "confirmPassword" , "Password and Confirm Password do not match") ); } - - - AppUser appUser = repo.findByEmail(registerDto.getEmail()); - if (appUser != null) { + + if (repo.findByEmail(registerDto.getEmail()) != null) { result.addError( - new FieldError("registerDto", "email" + new FieldError(BuilddbConstants.DTO_REGISTER, "email" , "Email address is already used") ); } if (result.hasErrors()) { - return "register"; + return BuilddbConstants.VIEW_REGISTER; } - - + + try { // create new account var bCryptEncoder = new BCryptPasswordEncoder(); - - + + AppUser newUser = new AppUser(); newUser.setFirstName(registerDto.getFirstName()); newUser.setLastName(registerDto.getLastName()); @@ -89,21 +86,21 @@ public class AccountController { newUser.setRole("client"); newUser.setCreatedAt(new Date()); newUser.setPassword(bCryptEncoder.encode(registerDto.getPassword())); - + repo.save(newUser); - - - model.addAttribute("registerDto", new RegisterDto()); + + + model.addAttribute(BuilddbConstants.DTO_REGISTER, new RegisterDto()); model.addAttribute("success", true); } catch(Exception ex) { result.addError( - new FieldError("registerDto", "firstName" + new FieldError(BuilddbConstants.DTO_REGISTER, "firstName" , ex.getMessage()) ); } - return "register"; + return BuilddbConstants.VIEW_REGISTER; } } 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 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 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 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/"; diff --git a/src/main/java/org/berzerkula/builddb/models/AppUser.java b/src/main/java/org/berzerkula/builddb/models/AppUser.java index 21c5a33..c6a4e04 100644 --- a/src/main/java/org/berzerkula/builddb/models/AppUser.java +++ b/src/main/java/org/berzerkula/builddb/models/AppUser.java @@ -29,6 +29,8 @@ public class AppUser { this.firstName = firstName; this.lastName = lastName; this.email = email; + this.phone = phone; + this.address = address; this.password = password; this.role = role; this.createdAt = new Date(); diff --git a/src/main/java/org/berzerkula/builddb/services/AppUserService.java b/src/main/java/org/berzerkula/builddb/services/AppUserService.java index 02cc89f..f18077d 100644 --- a/src/main/java/org/berzerkula/builddb/services/AppUserService.java +++ b/src/main/java/org/berzerkula/builddb/services/AppUserService.java @@ -21,15 +21,12 @@ public class AppUserService implements UserDetailsService { if (appUser != null) { - var springUser = User.withUsername(appUser.getEmail()) + return User.withUsername(appUser.getEmail()) .password(appUser.getPassword()) .roles(appUser.getRole()) .build(); - - return springUser; } - - + return null; } -- cgit v1.2.3-54-g00ecf