From ee73d2c6a9ff7e2c0feff04b66678c03ad9742dc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pesti=20Tam=C3=A1s?= <pesti.tamas@hallgato.ppke.hu>
Date: Wed, 15 May 2024 21:37:37 +0200
Subject: [PATCH] Validate breed in backend

---
 backend/src/main/java/hu/pazmany/controller/Controller.java | 6 +++++-
 frontend/src/components/dogs/AddDog.vue                     | 6 +++---
 frontend/src/components/dogs/EditDog.vue                    | 6 +++---
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/backend/src/main/java/hu/pazmany/controller/Controller.java b/backend/src/main/java/hu/pazmany/controller/Controller.java
index 766a5b2..a36197b 100644
--- a/backend/src/main/java/hu/pazmany/controller/Controller.java
+++ b/backend/src/main/java/hu/pazmany/controller/Controller.java
@@ -156,8 +156,12 @@ public class Controller {
 	public ResponseEntity<?> validateDogData(@Valid @RequestBody DetailedDogDTO request) {
 		if (request.getName().length() < 2 || request.getName().length() > 20)
 			return ResponseEntity.badRequest().body("A kutyanév 2 és 20 karakter között legyen");
-		if (!Pattern.matches("^[a-zA-ZáéíóöőúüűÁÉÍÓÖŐÚÜŰ ]*$",request.getName()))
+		if (!Pattern.matches("^[a-zA-ZáéíóöőúüűÁÉÍÓÖŐÚÜŰ ]{2,20}$",request.getName()))
 			return ResponseEntity.badRequest().body("A kutyanév kis- és nagybetűkből álljon");
+		if (request.getBreed().length() < 2 || request.getBreed().length() > 20)
+			return ResponseEntity.badRequest().body("A fajta neve 2 és 20 karakter között legyen");
+		if (!Pattern.matches("^[a-zA-ZáéíóöőúüűÁÉÍÓÖŐÚÜŰ ]{2,20}$",request.getBreed()))
+			return ResponseEntity.badRequest().body("A fajta neve kis- és nagybetűkből álljon");
 		if (request.getAge() < 0)
 			return ResponseEntity.badRequest().body("A kutya életkora nem lehet negatív");
 		return null;
diff --git a/frontend/src/components/dogs/AddDog.vue b/frontend/src/components/dogs/AddDog.vue
index 6add1fc..cf397ea 100644
--- a/frontend/src/components/dogs/AddDog.vue
+++ b/frontend/src/components/dogs/AddDog.vue
@@ -74,15 +74,15 @@ export default {
       const name = this.dog.name;
       const breed = this.dog.breed;
       const age = this.dog.age;
-      const regex = /^[a-zA-ZáéíóöőúüűÁÉÍÓÖŐÚÜŰ ]*$/;
+      const regex = /^[a-zA-ZáéíóöőúüűÁÉÍÓÖŐÚÜŰ ]{2,20}$/;
 
       if (!name.match(regex)) {
-        this.errorMessage = "Helytelen név. Csak betűket tartalmazhat.";
+        this.errorMessage = "Helytelen név. Csak betűket tartalmazhat (2-20 karakter).";
         return false;
       }
 
       if (!breed.match(regex)) {
-        this.errorMessage = "Helytelen fajta. Csak betűket tartalmazhat.";
+        this.errorMessage = "Helytelen fajta. Csak betűket tartalmazhat (2-20 karakter).";
         return false;
       }
 
diff --git a/frontend/src/components/dogs/EditDog.vue b/frontend/src/components/dogs/EditDog.vue
index abd2dc6..90182a1 100644
--- a/frontend/src/components/dogs/EditDog.vue
+++ b/frontend/src/components/dogs/EditDog.vue
@@ -79,15 +79,15 @@ export default {
       const name = this.dog.name;
       const breed = this.dog.breed;
       const age = this.dog.age;
-      const regex = /^[a-zA-ZáéíóöőúüűÁÉÍÓÖŐÚÜŰ ]*$/;
+      const regex = /^[a-zA-ZáéíóöőúüűÁÉÍÓÖŐÚÜŰ ]{2,20}$/;
 
       if (!name.match(regex)) {
-        this.errorMessage = "Helytelen név. Csak betűket tartalmazhat.";
+        this.errorMessage = "Helytelen név. Csak betűket tartalmazhat (2-20 karakter).";
         return false;
       }
 
       if (!breed.match(regex)) {
-        this.errorMessage = "Helytelen fajta. Csak betűket tartalmazhat.";
+        this.errorMessage = "Helytelen fajta. Csak betűket tartalmazhat (2-20 karakter).";
         return false;
       }
 
-- 
GitLab