From c6afe22fd16f7da6d521eabb319a9198ae4698b8 Mon Sep 17 00:00:00 2001 From: Denis Rosa Date: Tue, 13 Apr 2021 17:41:01 +0200 Subject: [PATCH] fixing adding new visits --- readme.md | 10 ---------- .../samples/petclinic/IndexCMDRunner.java | 16 ++++----------- .../petclinic/owner/VisitController.java | 9 ++++++--- .../samples/petclinic/visit/Visit.java | 20 +++++++++---------- .../templates/owners/ownerDetails.html | 2 +- .../pets/createOrUpdateVisitForm.html | 9 ++++----- 6 files changed, 25 insertions(+), 41 deletions(-) diff --git a/readme.md b/readme.md index 1020a340a..fcbbee52c 100644 --- a/readme.md +++ b/readme.md @@ -103,13 +103,3 @@ For pull requests, editor preferences are available in the [editor config](.edit The Spring PetClinic sample application is released under version 2.0 of the [Apache License](https://www.apache.org/licenses/LICENSE-2.0). -[spring-petclinic]: https://github.com/spring-projects/spring-petclinic -[spring-framework-petclinic]: https://github.com/spring-petclinic/spring-framework-petclinic -[spring-petclinic-angularjs]: https://github.com/spring-petclinic/spring-petclinic-angularjs -[javaconfig branch]: https://github.com/spring-petclinic/spring-framework-petclinic/tree/javaconfig -[spring-petclinic-angular]: https://github.com/spring-petclinic/spring-petclinic-angular -[spring-petclinic-microservices]: https://github.com/spring-petclinic/spring-petclinic-microservices -[spring-petclinic-reactjs]: https://github.com/spring-petclinic/spring-petclinic-reactjs -[spring-petclinic-graphql]: https://github.com/spring-petclinic/spring-petclinic-graphql -[spring-petclinic-kotlin]: https://github.com/spring-petclinic/spring-petclinic-kotlin -[spring-petclinic-rest]: https://github.com/spring-petclinic/spring-petclinic-rest diff --git a/src/main/java/org/springframework/samples/petclinic/IndexCMDRunner.java b/src/main/java/org/springframework/samples/petclinic/IndexCMDRunner.java index a3d3503b9..d6f98e230 100644 --- a/src/main/java/org/springframework/samples/petclinic/IndexCMDRunner.java +++ b/src/main/java/org/springframework/samples/petclinic/IndexCMDRunner.java @@ -90,12 +90,10 @@ public class IndexCMDRunner implements CommandLineRunner { petRepository.save(new Pet("pet-4", "Jewel", "2010-03-07", "dog", "owner-3", new ArrayList())); petRepository.save(new Pet("pet-5", "Iggy", "2010-11-30", "lizard", "owner-4", new ArrayList())); petRepository.save(new Pet("pet-6", "George", "2010-01-20", "snake", "owner-5", new ArrayList())); - petRepository.save(new Pet("pet-7", "Samantha", "2012-09-04", "cat", "owner-6", - Arrays.asList(new Visit("visit-1", toMilliseconds("2013-01-01"), "rabies shot"), - new Visit("visit-4", toMilliseconds("2013-01-04"), "spayed")))); - petRepository.save(new Pet("pet-8", "Max", "2012-09-04", "cat", "owner-6", - Arrays.asList(new Visit("visit-2", toMilliseconds("2013-01-02"), "rabies shot"), - new Visit("visit-3", toMilliseconds("2013-01-03"), "neutered")))); + petRepository.save(new Pet("pet-7", "Samantha", "2012-09-04", "cat", "owner-6", Arrays.asList( + new Visit("visit-1", "2013-01-01", "rabies shot"), new Visit("visit-4", "2013-01-04", "spayed")))); + petRepository.save(new Pet("pet-8", "Max", "2012-09-04", "cat", "owner-6", Arrays.asList( + new Visit("visit-2", "2013-01-02", "rabies shot"), new Visit("visit-3", "2013-01-03", "neutered")))); petRepository.save(new Pet("pet-9", "Lucky", "2011-08-06", "bird", "owner-7", new ArrayList())); petRepository.save(new Pet("pet-10", "Mulligan", "2007-02-24", "dog", "owner-8", new ArrayList())); @@ -104,10 +102,4 @@ public class IndexCMDRunner implements CommandLineRunner { petRepository.save(new Pet("pet-13", "Sly", "2012-06-08", "cat", "owner-10", new ArrayList())); } - private long toMilliseconds(String targetDate) throws Exception { - SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd"); - Date d = f.parse(targetDate); - return d.getTime(); - } - } diff --git a/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java b/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java index 8c437a361..fd9dfd3e6 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/VisitController.java @@ -42,8 +42,11 @@ class VisitController { private final PetRepository petRepository; - public VisitController(PetRepository petRepository) { + private final OwnerRepository ownerRepository; + + public VisitController(PetRepository petRepository, OwnerRepository ownerRepository) { this.petRepository = petRepository; + this.ownerRepository = ownerRepository; } @InitBinder @@ -62,6 +65,7 @@ class VisitController { public Visit loadPetWithVisit(@PathVariable("petId") String petId, Map model) { Pet pet = this.petRepository.findById(petId).get(); model.put("pet", pet); + model.put("owner", this.ownerRepository.findById(pet.getOwnerId()).get()); Visit visit = new Visit(); return visit; } @@ -69,8 +73,6 @@ class VisitController { // Spring MVC calls method loadPetWithVisit(...) before initNewVisitForm is called @GetMapping("/owners/*/pets/{petId}/visits/new") public String initNewVisitForm(@PathVariable("petId") String petId, Map model) { - Pet pet = this.petRepository.findById(petId).get(); - model.put("pet", pet); return "pets/createOrUpdateVisitForm"; } @@ -78,6 +80,7 @@ class VisitController { @PostMapping("/owners/{ownerId}/pets/{petId}/visits/new") public String processNewVisitForm(@PathVariable("petId") String petId, @Valid Visit visit, BindingResult result) { if (result.hasErrors()) { + System.out.println(result.getAllErrors()); return "pets/createOrUpdateVisitForm"; } else { diff --git a/src/main/java/org/springframework/samples/petclinic/visit/Visit.java b/src/main/java/org/springframework/samples/petclinic/visit/Visit.java index aeb5768f8..09b3210f6 100755 --- a/src/main/java/org/springframework/samples/petclinic/visit/Visit.java +++ b/src/main/java/org/springframework/samples/petclinic/visit/Visit.java @@ -15,14 +15,14 @@ */ package org.springframework.samples.petclinic.visit; -import java.time.LocalDate; -import java.time.temporal.TemporalField; +import org.springframework.data.couchbase.core.mapping.id.GeneratedValue; +import org.springframework.data.couchbase.core.mapping.id.GenerationStrategy; + +import java.text.SimpleDateFormat; import java.util.Date; import javax.validation.constraints.NotEmpty; -import org.springframework.format.annotation.DateTimeFormat; - /** * Simple JavaBean domain object representing a visit. * @@ -31,15 +31,14 @@ import org.springframework.format.annotation.DateTimeFormat; */ public class Visit { - @NotEmpty private String id; - private Long visitDate; + private String visitDate; @NotEmpty private String description; - public Visit(@NotEmpty String id, Long visitDate, @NotEmpty String description) { + public Visit(@NotEmpty String id, String visitDate, @NotEmpty String description) { this.id = id; this.visitDate = visitDate; this.description = description; @@ -49,7 +48,8 @@ public class Visit { * Creates a new instance of Visit for the current date */ public Visit() { - this.visitDate = new Date().getTime(); + SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd"); + this.visitDate = f.format(new Date()); } public String getId() { @@ -60,11 +60,11 @@ public class Visit { this.id = id; } - public Long getVisitDate() { + public String getVisitDate() { return visitDate; } - public void setVisitDate(Long visitDate) { + public void setVisitDate(String visitDate) { this.visitDate = visitDate; } diff --git a/src/main/resources/templates/owners/ownerDetails.html b/src/main/resources/templates/owners/ownerDetails.html index d3217638b..038569af3 100644 --- a/src/main/resources/templates/owners/ownerDetails.html +++ b/src/main/resources/templates/owners/ownerDetails.html @@ -61,7 +61,7 @@ - + diff --git a/src/main/resources/templates/pets/createOrUpdateVisitForm.html b/src/main/resources/templates/pets/createOrUpdateVisitForm.html index d258187c5..93c86af90 100644 --- a/src/main/resources/templates/pets/createOrUpdateVisitForm.html +++ b/src/main/resources/templates/pets/createOrUpdateVisitForm.html @@ -4,8 +4,7 @@

- New - Visit +

Pet @@ -31,7 +30,7 @@
+ th:replace="~{fragments/inputField :: input ('Date', 'visitDate', 'date')}" />
@@ -51,8 +50,8 @@ Date Description - - + +