From 2764a42b5bf23c911dfa4b40ebfea4090c4fc9c0 Mon Sep 17 00:00:00 2001 From: VishantOwO Date: Thu, 2 Jan 2025 13:56:19 +0530 Subject: [PATCH] refactor: extract update logic to separate method in PetController --- .../petclinic/owner/PetController.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/springframework/samples/petclinic/owner/PetController.java b/src/main/java/org/springframework/samples/petclinic/owner/PetController.java index cd85b9c5a..57d11f160 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/PetController.java @@ -146,23 +146,26 @@ class PetController { return VIEWS_PETS_CREATE_OR_UPDATE_FORM; } + updatePetDetails(owner, pet); + redirectAttributes.addFlashAttribute("message", "Pet details has been edited"); + return "redirect:/owners/{ownerId}"; + } + /** + * Updates the pet details if it exists or adds a new pet to the owner. + * @param owner The owner of the pet + * @param pet The pet with updated details + */ + private void updatePetDetails(Owner owner, Pet pet) { Pet existingPet = owner.getPet(pet.getId()); if (existingPet != null) { // Update existing pet's properties existingPet.setName(pet.getName()); existingPet.setBirthDate(pet.getBirthDate()); existingPet.setType(pet.getType()); - - this.owners.save(owner); } else { - owner.addPet(pet); - this.owners.save(owner); } - - redirectAttributes.addFlashAttribute("message", "Pet details has been edited"); - return "redirect:/owners/{ownerId}"; + this.owners.save(owner); } - }