From b81075da6c2e601fc46d2b8f148c9a40f1e49496 Mon Sep 17 00:00:00 2001 From: Awadhesh Kumar Date: Tue, 28 Apr 2020 08:55:27 +0530 Subject: [PATCH] Enhancement Added pet controller. Added get owner by id handler. --- .../petclinic/owner/rest/OwnerController.java | 32 ++++++++++++++-- .../petclinic/owner/rest/PetController.java | 37 +++++++++++++++++++ 2 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 src/main/java/org/springframework/samples/petclinic/owner/rest/PetController.java diff --git a/src/main/java/org/springframework/samples/petclinic/owner/rest/OwnerController.java b/src/main/java/org/springframework/samples/petclinic/owner/rest/OwnerController.java index 783cffc97..915646c6b 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/rest/OwnerController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/rest/OwnerController.java @@ -66,6 +66,25 @@ public class OwnerController { return new ResponseEntity<>(results, HttpStatus.OK); } } + + @GetMapping("/{ownerid}") + public ResponseEntity getOwner(@PathVariable("ownerid") int ownerId) { + + // find owners by last name + ExistingOwnerForm result = getOwnerDetail(ownerId); + if (result==null) { + // no owners found + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } else { + // owners found + return new ResponseEntity<>(result, HttpStatus.OK); + } + } + + private ExistingOwnerForm getOwnerDetail(int ownerId) { + Owner existingOwner=this.owners.findById(ownerId); + return getOwnerDetail(existingOwner); + } @PutMapping("") public ResponseEntity updateOwner(@Valid @RequestBody ExistingOwnerForm existingOwnerForm,BindingResult result) { @@ -87,16 +106,23 @@ public class OwnerController { CollectionexistingOwners=owners.findByLastName(ownerForm.getLastName()); Collectionowners=new ArrayList<>(); for(Owner existingOwner:existingOwners) { - ExistingOwnerForm owner=new ExistingOwnerForm(); + owners.add(getOwnerDetail(existingOwner)); + } + return owners; + } + + private ExistingOwnerForm getOwnerDetail(Owner existingOwner) { + ExistingOwnerForm owner=null; + if(existingOwner!=null) { + owner=new ExistingOwnerForm(); owner.setId(existingOwner.getId()); owner.setAddress(existingOwner.getAddress()); owner.setCity(existingOwner.getCity()); owner.setFirstName(existingOwner.getFirstName()); owner.setLastName(existingOwner.getLastName()); owner.setTelephone(existingOwner.getTelephone()); - owners.add(owner); } - return owners; + return owner; } private void createNewOwner(final NewOwnerForm owner) { diff --git a/src/main/java/org/springframework/samples/petclinic/owner/rest/PetController.java b/src/main/java/org/springframework/samples/petclinic/owner/rest/PetController.java new file mode 100644 index 000000000..44c9433a3 --- /dev/null +++ b/src/main/java/org/springframework/samples/petclinic/owner/rest/PetController.java @@ -0,0 +1,37 @@ +package org.springframework.samples.petclinic.owner.rest; + +import java.util.Collection; + +import org.springframework.samples.petclinic.owner.Owner; +import org.springframework.samples.petclinic.owner.OwnerRepository; +import org.springframework.samples.petclinic.owner.PetRepository; +import org.springframework.samples.petclinic.owner.PetType; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +/** + * + * @author Awadhesh Kumar + * + */ +@RestController("PetController") +@RequestMapping("/api/owners/{ownerid}/pets") +public class PetController { + private final PetRepository pets; + + private final OwnerRepository owners; + + public PetController(PetRepository pets, OwnerRepository owners) { + this.pets = pets; + this.owners = owners; + } + + @GetMapping("/types") + public Collection populatePetTypes() { + return this.pets.findPetTypes(); + } + + +}