From f94528c30a70e6ac695b9a2cb52721f186f764ba Mon Sep 17 00:00:00 2001 From: Logine Mohamed Date: Fri, 27 Dec 2024 00:27:46 +0200 Subject: [PATCH] Refactored OwnerService --- .../samples/petclinic/owner/OwnerService.java | 11 +++++ .../petclinic/owner/OwnerServiceMap.java | 45 +++++++++++++++++++ .../petclinic/owner/PetController.java | 1 - 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/springframework/samples/petclinic/owner/OwnerService.java create mode 100644 src/main/java/org/springframework/samples/petclinic/owner/OwnerServiceMap.java diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerService.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerService.java new file mode 100644 index 000000000..e51e146d7 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerService.java @@ -0,0 +1,11 @@ +package org.springframework.samples.petclinic.owner; + +import java.util.Set; + +public interface OwnerService { + Owner findOwnerById(Integer id); + Set getAllOwners(); + Owner saveOwner(Owner owner); + void deleteOwner(Owner owner); + void deleteOwnerById(Integer id); +} diff --git a/src/main/java/org/springframework/samples/petclinic/owner/OwnerServiceMap.java b/src/main/java/org/springframework/samples/petclinic/owner/OwnerServiceMap.java new file mode 100644 index 000000000..77cd05f88 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/owner/OwnerServiceMap.java @@ -0,0 +1,45 @@ +package org.springframework.samples.petclinic.owner; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashSet; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; + +@Service +public class OwnerServiceMap implements OwnerService { + private final OwnerRepository ownerRepository; + + @Autowired + public OwnerServiceMap(OwnerRepository ownerRepository) { + this.ownerRepository = ownerRepository; + } + + @Override + public Owner findOwnerById(Integer id) { + return ownerRepository.findById(id).orElse(null); // Handle Optional with null or custom logic + } + + @Override + public Set getAllOwners() { + return StreamSupport.stream(ownerRepository.findAll().spliterator(), false) + .collect(Collectors.toSet()); + } + + @Override + public Owner saveOwner(Owner owner) { + return ownerRepository.save(owner); + } + + @Override + public void deleteOwner(Owner owner) { + ownerRepository.delete(owner); + } + + @Override + public void deleteOwnerById(Integer id) { + ownerRepository.deleteById(id); + } +} 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 8feb8ece2..2aef52ad5 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/PetController.java @@ -87,7 +87,6 @@ class PetController { private void setAllowedFields(WebDataBinder dataBinder) { dataBinder.setDisallowedFields("id"); } - @GetMapping("/pets/new") public String initCreationForm(Owner owner, ModelMap model) { Pet pet = new Pet();