- Création de tous les DTOs d'authentification (LoginRequestDTO, LoginResponseDTO, TokenDTO, PasswordResetDTO) - Création des DTOs utilisateur (UserDTO, CreateUserDTO, UpdateUserDTO) - Création des DTOs communs (PagedResultDTO, ErrorResponseDTO, SuccessResponseDTO) - Création de toutes les classes d'exception (GBCMException, AuthenticationException, AuthorizationException, ValidationException, ResourceNotFoundException, BusinessRuleException) - Création des enums métier (ServiceType, WorkshopPackage, PaymentStatus, SessionStatus, InvoiceStatus) - Amélioration de l'interface AuthService avec documentation complète - Création de l'interface UserService avec tous les endpoints CRUD - Documentation Javadoc complète en français sur toutes les classes - Annotations OpenAPI/Swagger sur toutes les interfaces - Validation Jakarta sur tous les DTOs - Compilation réussie du module API
96 lines
2.7 KiB
Java
96 lines
2.7 KiB
Java
package com.gbcm.server.api.exceptions;
|
|
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
/**
|
|
* Exception levée lors d'erreurs de validation des données.
|
|
* Contient des détails sur les champs en erreur et leurs messages.
|
|
*
|
|
* @author GBCM Development Team
|
|
* @version 1.0
|
|
* @since 1.0
|
|
*/
|
|
public class ValidationException extends GBCMException {
|
|
|
|
/**
|
|
* Map des erreurs de validation par champ.
|
|
*/
|
|
private final Map<String, List<String>> fieldErrors;
|
|
|
|
/**
|
|
* Constructeur avec message.
|
|
*
|
|
* @param message le message d'erreur de validation
|
|
*/
|
|
public ValidationException(String message) {
|
|
super(message, "VALIDATION_ERROR");
|
|
this.fieldErrors = Map.of();
|
|
}
|
|
|
|
/**
|
|
* Constructeur avec message et erreurs de champs.
|
|
*
|
|
* @param message le message d'erreur de validation
|
|
* @param fieldErrors les erreurs par champ
|
|
*/
|
|
public ValidationException(String message, Map<String, List<String>> fieldErrors) {
|
|
super(message, "VALIDATION_ERROR");
|
|
this.fieldErrors = fieldErrors != null ? fieldErrors : Map.of();
|
|
}
|
|
|
|
/**
|
|
* Constructeur avec message, erreurs de champs et cause.
|
|
*
|
|
* @param message le message d'erreur de validation
|
|
* @param fieldErrors les erreurs par champ
|
|
* @param cause la cause de l'exception
|
|
*/
|
|
public ValidationException(String message, Map<String, List<String>> fieldErrors, Throwable cause) {
|
|
super(message, "VALIDATION_ERROR", cause);
|
|
this.fieldErrors = fieldErrors != null ? fieldErrors : Map.of();
|
|
}
|
|
|
|
/**
|
|
* Retourne les erreurs de validation par champ.
|
|
*
|
|
* @return une map des erreurs par champ
|
|
*/
|
|
public Map<String, List<String>> getFieldErrors() {
|
|
return fieldErrors;
|
|
}
|
|
|
|
/**
|
|
* Vérifie si l'exception contient des erreurs de champs.
|
|
*
|
|
* @return true si des erreurs de champs sont présentes, false sinon
|
|
*/
|
|
public boolean hasFieldErrors() {
|
|
return !fieldErrors.isEmpty();
|
|
}
|
|
|
|
/**
|
|
* Retourne les erreurs pour un champ spécifique.
|
|
*
|
|
* @param fieldName le nom du champ
|
|
* @return la liste des erreurs pour ce champ, ou une liste vide
|
|
*/
|
|
public List<String> getFieldErrors(String fieldName) {
|
|
return fieldErrors.getOrDefault(fieldName, List.of());
|
|
}
|
|
|
|
/**
|
|
* Représentation textuelle de l'exception.
|
|
*
|
|
* @return une chaîne représentant l'exception
|
|
*/
|
|
@Override
|
|
public String toString() {
|
|
return "ValidationException{" +
|
|
"errorCode='" + getErrorCode() + '\'' +
|
|
", message='" + getMessage() + '\'' +
|
|
", fieldErrorsCount=" + fieldErrors.size() +
|
|
'}';
|
|
}
|
|
}
|