UserValidationService.php
1 <?php 2 3 namespace ButA2SaeS3\services; 4 5 use ButA2SaeS3\dto\AddUserDto; 6 use ButA2SaeS3\validation\ValidationResult; 7 8 class UserValidationService 9 { 10 public static function validateCreateUser(array $data): ValidationResult 11 { 12 $result = ValidationResult::empty(); 13 14 $username = trim($data['username'] ?? ''); 15 $password = $data['password'] ?? ''; 16 $passwordConfirm = $data['password-confirm'] ?? ''; 17 $role = trim($data['role'] ?? ''); 18 $poles = $data['poles'] ?? []; 19 20 if ($username === '') { 21 $result->addMessage('username', "Le nom d'utilisateur est requis"); 22 } 23 24 if ($password === '') { 25 $result->addMessage('password', "Le mot de passe est requis"); 26 } 27 28 if ($passwordConfirm === '') { 29 $result->addMessage('password-confirm', "La confirmation est requise"); 30 } elseif ($password !== $passwordConfirm) { 31 $result->addMessage('password-confirm', "Les mots de passe ne correspondent pas"); 32 } 33 34 if ($role === '') { 35 $result->addMessage('role', "Le rôle est requis"); 36 } elseif ($role === 'responsable-pole' && empty($poles)) { 37 $result->addMessage('poles', "Sélectionner au moins un pôle"); 38 } 39 40 if ($result->hasMessages()) { 41 return $result; 42 } 43 44 $dto = new AddUserDto( 45 $username, 46 $password, 47 $role, 48 is_array($poles) ? $poles : [] 49 ); 50 $result->setValue($dto); 51 return $result; 52 } 53 }