Sync: code local unifié
Synchronisation du code source local (fait foi). Signed-off-by: lions dev Team
This commit is contained in:
@@ -1,39 +0,0 @@
|
||||
package dev.lions.unionflow.server.exception;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonMappingException;
|
||||
import com.fasterxml.jackson.databind.exc.InvalidFormatException;
|
||||
import com.fasterxml.jackson.databind.exc.MismatchedInputException;
|
||||
import jakarta.ws.rs.core.Response;
|
||||
import jakarta.ws.rs.ext.ExceptionMapper;
|
||||
import jakarta.ws.rs.ext.Provider;
|
||||
import java.util.Map;
|
||||
import org.jboss.logging.Logger;
|
||||
|
||||
/**
|
||||
* Exception mapper pour gérer les erreurs de désérialisation JSON
|
||||
* Retourne 400 (Bad Request) au lieu de 500 (Internal Server Error)
|
||||
*/
|
||||
@Provider
|
||||
public class JsonProcessingExceptionMapper implements ExceptionMapper<com.fasterxml.jackson.core.JsonProcessingException> {
|
||||
|
||||
private static final Logger LOG = Logger.getLogger(JsonProcessingExceptionMapper.class);
|
||||
|
||||
@Override
|
||||
public Response toResponse(com.fasterxml.jackson.core.JsonProcessingException exception) {
|
||||
LOG.warnf("Erreur de désérialisation JSON: %s", exception.getMessage());
|
||||
|
||||
String message = "Erreur de format JSON";
|
||||
if (exception instanceof MismatchedInputException) {
|
||||
message = "Format JSON invalide ou body manquant";
|
||||
} else if (exception instanceof InvalidFormatException) {
|
||||
message = "Format de données invalide dans le JSON";
|
||||
} else if (exception instanceof JsonMappingException) {
|
||||
message = "Erreur de mapping JSON: " + exception.getMessage();
|
||||
}
|
||||
|
||||
return Response.status(Response.Status.BAD_REQUEST)
|
||||
.entity(Map.of("message", message, "details", exception.getMessage()))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user