Refactor PrestashopClient to improve image upload response handling and enhance error reporting

This commit is contained in:
Vincent Guillet
2025-12-03 15:47:12 +01:00
parent b15c331295
commit a72957648e

View File

@@ -296,7 +296,6 @@ public class PrestashopClient {
byte[] multipartBytes = baos.toByteArray(); byte[] multipartBytes = baos.toByteArray();
// -------- Envoi via HttpURLConnection --------
// -------- Envoi via HttpURLConnection -------- // -------- Envoi via HttpURLConnection --------
URL targetUrl = URI.create(url).toURL(); URL targetUrl = URI.create(url).toURL();
HttpURLConnection conn = (HttpURLConnection) targetUrl.openConnection(); HttpURLConnection conn = (HttpURLConnection) targetUrl.openConnection();
@@ -335,16 +334,33 @@ public class PrestashopClient {
log.info("[PrestaShop] Image upload response status={}, body={}", status, responseBody); log.info("[PrestaShop] Image upload response status={}, body={}", status, responseBody);
// ---------- Mapping vers une réponse propre pour le front ----------
if (status >= 200 && status < 300) {
// Succès : on renvoie un petit JSON que Angular sait lire
return ResponseEntity
.ok()
.contentType(MediaType.APPLICATION_JSON)
.body("{\"success\":true}");
}
HttpStatus springStatus = HttpStatus.resolve(status); HttpStatus springStatus = HttpStatus.resolve(status);
if (springStatus == null) { if (springStatus == null) {
springStatus = HttpStatus.INTERNAL_SERVER_ERROR; springStatus = HttpStatus.INTERNAL_SERVER_ERROR;
} }
return new ResponseEntity<>(responseBody, springStatus); // En cas derreur Presta, on propage lXML pour debug
return ResponseEntity
.status(springStatus)
.contentType(MediaType.APPLICATION_XML)
.body(responseBody);
} catch (IOException e) { } catch (IOException e) {
log.error("[PrestaShop] Erreur lors de l'upload d'image", e); log.error("[PrestaShop] Erreur lors de l'upload d'image", e);
throw new RuntimeException("Erreur lors de l'upload d'image vers PrestaShop", e); return ResponseEntity
.status(HttpStatus.BAD_GATEWAY)
.contentType(MediaType.TEXT_PLAIN)
.body("Erreur lors de l'upload d'image vers PrestaShop");
} }
} }
} }