Compare commits

...

4 commits

Author SHA1 Message Date
Perumal Raj A
3dc92bb2f1
Merge e15623d232 into 2aa53f929d 2025-03-02 01:29:03 +08:00
VishantOwO
2aa53f929d Fix pet update functionality
Some checks failed
Java CI with Gradle / build (17) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
- Fixed issue where editing a pet's type or name wasn't persisting
- Updated processUpdateForm to modify existing pet instead of
  adding new one
- Added proper handling of existing pet update

Fixes #1752
2025-03-01 15:29:15 +00:00
Dave Syer
6328d2c9dc Add DCO to README
Some checks failed
Java CI with Gradle / build (17) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
2025-02-12 14:58:27 +00:00
Dave Syer
7bce202762 Add dco config 2025-02-12 14:56:15 +00:00
3 changed files with 25 additions and 4 deletions

2
.github/dco.yml vendored Normal file
View file

@ -0,0 +1,2 @@
require:
members: false

View file

@ -155,7 +155,8 @@ Here is a list of them:
The [issue tracker](https://github.com/spring-projects/spring-petclinic/issues) is the preferred channel for bug reports, feature requests and submitting pull requests.
For pull requests, editor preferences are available in the [editor config](.editorconfig) for easy use in common text editors. Read more and download plugins at <https://editorconfig.org>. If you have not previously done so, please fill out and submit the [Contributor License Agreement](https://cla.pivotal.io/sign/spring).
For pull requests, editor preferences are available in the [editor config](.editorconfig) for easy use in common text editors. Read more and download plugins at <https://editorconfig.org>. All commits must include a __Signed-off-by__ trailer at the end of each commit message to indicate that the contributor agrees to the Developer Certificate of Origin.
For additional details, please refer to the blog post [Hello DCO, Goodbye CLA: Simplifying Contributions to Spring](https://spring.io/blog/2025/01/06/hello-dco-goodbye-cla-simplifying-contributions-to-spring).
## License

View file

@ -129,7 +129,7 @@ class PetController {
String petName = pet.getName();
// checking if the pet name already exist for the owner
// checking if the pet name already exists for the owner
if (StringUtils.hasText(petName)) {
Pet existingPet = owner.getPet(petName, false);
if (existingPet != null && !existingPet.getId().equals(pet.getId())) {
@ -146,10 +146,28 @@ class PetController {
return VIEWS_PETS_CREATE_OR_UPDATE_FORM;
}
owner.addPet(pet);
this.owners.save(owner);
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());
}
else {
owner.addPet(pet);
}
this.owners.save(owner);
}
}