diff --git a/src/main/java/org/springframework/samples/petclinic/owner/rest/ExistingOwnerForm.java b/src/main/java/org/springframework/samples/petclinic/owner/rest/ExistingOwnerForm.java index e5f9b950d..666e9de11 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/rest/ExistingOwnerForm.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/rest/ExistingOwnerForm.java @@ -1,4 +1,7 @@ package org.springframework.samples.petclinic.owner.rest; + +import org.springframework.samples.petclinic.owner.Owner; + /** * * @author Awadhesh Kumar @@ -14,5 +17,10 @@ public class ExistingOwnerForm extends NewOwnerForm{ public void setId(int id) { this.id = id; } - + + public Owner NewOwner() { + Owner owner=super.NewOwner(); + owner.setId(this.id); + return owner; + } } 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 54091c4cf..783cffc97 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 @@ -12,9 +12,12 @@ import org.springframework.http.ResponseEntity; import org.springframework.samples.petclinic.owner.Owner; import org.springframework.samples.petclinic.owner.OwnerRepository; import org.springframework.samples.petclinic.visit.VisitRepository; +import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -24,7 +27,7 @@ import org.springframework.web.bind.annotation.RestController; * */ @RestController("OwnerRestController") -@RequestMapping("/api/owner") +@RequestMapping("/api/owners") public class OwnerController { private final OwnerRepository owners; @@ -35,7 +38,7 @@ public class OwnerController { this.visits = visits; } - @PostMapping("/new") + @PostMapping("") public ResponseEntity createOwner(@Valid @RequestBody NewOwnerForm owner, BindingResult result) { if (result.hasErrors()) { return new ResponseEntity(result.getAllErrors(),HttpStatus.BAD_REQUEST); @@ -64,6 +67,22 @@ public class OwnerController { } } + @PutMapping("") + public ResponseEntity updateOwner(@Valid @RequestBody ExistingOwnerForm existingOwnerForm,BindingResult result) { + if (result.hasErrors()) { + return new ResponseEntity(result.getAllErrors(),HttpStatus.BAD_REQUEST); + } else { + updateOwner(existingOwnerForm); + return new ResponseEntity<>("Owner updated",HttpStatus.OK); + } + } + + private void updateOwner(final ExistingOwnerForm existingOwnerForm) { + Owner existingOwner=this.owners.findById(existingOwnerForm.getId()); + existingOwner=existingOwnerForm.NewOwner(); + this.owners.save(existingOwner); + } + private Collection getAllOwners(NewOwnerForm ownerForm) { CollectionexistingOwners=owners.findByLastName(ownerForm.getLastName()); Collectionowners=new ArrayList<>();