From 3be289517d320a47bb8f359acc1d1daf0829ed0b Mon Sep 17 00:00:00 2001 From: bijomutta Date: Fri, 7 Jul 2023 18:39:38 +0200 Subject: [PATCH] Add birthdate validation --- .../samples/petclinic/owner/PetController.java | 12 ++++++++++++ src/main/resources/messages/messages_de.properties | 5 +++-- src/main/resources/messages/messages_es.properties | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) 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 9d88f0399..1a5f86581 100644 --- a/src/main/java/org/springframework/samples/petclinic/owner/PetController.java +++ b/src/main/java/org/springframework/samples/petclinic/owner/PetController.java @@ -15,6 +15,7 @@ */ package org.springframework.samples.petclinic.owner; +import java.time.LocalDate; import java.util.Collection; import org.springframework.stereotype.Controller; @@ -88,6 +89,11 @@ class PetController { result.rejectValue("name", "duplicate", "already exists"); } + LocalDate currentDate = LocalDate.now(); + if (pet.getBirthDate() != null && pet.getBirthDate().isAfter(currentDate)) { + result.rejectValue("birthDate", "typeMismatch.birthDate"); + } + owner.addPet(pet); if (result.hasErrors()) { model.put("pet", pet); @@ -107,6 +113,12 @@ class PetController { @PostMapping("/pets/{petId}/edit") public String processUpdateForm(@Valid Pet pet, BindingResult result, Owner owner, ModelMap model) { + + LocalDate currentDate = LocalDate.now(); + if (pet.getBirthDate() != null && pet.getBirthDate().isAfter(currentDate)) { + result.rejectValue("birthDate", "typeMismatch.birthDate"); + } + if (result.hasErrors()) { model.put("pet", pet); return VIEWS_PETS_CREATE_OR_UPDATE_FORM; diff --git a/src/main/resources/messages/messages_de.properties b/src/main/resources/messages/messages_de.properties index 124bee48b..4828d85fe 100644 --- a/src/main/resources/messages/messages_de.properties +++ b/src/main/resources/messages/messages_de.properties @@ -4,5 +4,6 @@ notFound=wurde nicht gefunden duplicate=ist bereits vergeben nonNumeric=darf nur numerisch sein duplicateFormSubmission=Wiederholtes Absenden des Formulars ist nicht erlaubt -typeMismatch.date=ungültiges Datum -typeMismatch.birthDate=ungültiges Datum +typeMismatch.date=ung�ltiges Datum +typeMismatch.birthDate=ung�ltiges Datum + diff --git a/src/main/resources/messages/messages_es.properties b/src/main/resources/messages/messages_es.properties index 33ee867b5..116016fa3 100644 --- a/src/main/resources/messages/messages_es.properties +++ b/src/main/resources/messages/messages_es.properties @@ -6,3 +6,4 @@ nonNumeric=Sólo debe contener numeros duplicateFormSubmission=No se permite el envío de formularios duplicados typeMismatch.date=Fecha invalida typeMismatch.birthDate=Fecha invalida +