Refactor PrestashopClient to improve image upload response handling and enhance error reporting
This commit is contained in:
@@ -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 d’erreur Presta, on propage l’XML 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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user