diff --git a/api/src/main/java/fr/gameovergne/api/service/prestashop/PrestashopClient.java b/api/src/main/java/fr/gameovergne/api/service/prestashop/PrestashopClient.java index 90b0d6e..342130d 100644 --- a/api/src/main/java/fr/gameovergne/api/service/prestashop/PrestashopClient.java +++ b/api/src/main/java/fr/gameovergne/api/service/prestashop/PrestashopClient.java @@ -17,30 +17,28 @@ public class PrestashopClient { private final RestTemplate restTemplate = new RestTemplate(); private final String baseUrl; - private final String basicAuth; // valeur déjà encodée Base64 (sans le "Basic ") + private final String basicAuth; // base64 SANS le "Basic " public PrestashopClient( @Value("${prestashop.base-url}") String baseUrl, - @Value("${prestashop.basic-auth}") String basicAuth) { + @Value("${prestashop.basic-auth}") String basicAuth + ) { this.baseUrl = baseUrl; this.basicAuth = basicAuth; } /** - * Appel GET générique sur l'API PrestaShop. - * - * @param path ex: "/categories" - * @param query ex: "display=%5Bid,name,active%5D&output_format=JSON" ou null - * @return corps de la réponse JSON brute + * Appel générique GET vers PrestaShop. + * On ignore complètement la query reçue du front et on force output_format=JSON. */ - public String get(String path, String query) { - String url = UriComponentsBuilder + public String get(String path, String ignoredQuery) { + UriComponentsBuilder builder = UriComponentsBuilder .fromHttpUrl(baseUrl) .path("/api") .path(path) - .query(query) - .build(true) // true = ne ré-encode pas les caractères déjà encodés (%5B ...) - .toUriString(); + .queryParam("output_format", "JSON"); + + String url = builder.build(true).toUriString(); log.info("[PrestaShop] Appel URL = {}", url); @@ -59,9 +57,9 @@ public class PrestashopClient { log.info("[PrestaShop] Réponse HTTP {} pour {}", response.getStatusCode(), url); - // Si Presta renvoie autre chose que 2xx, on propage une 502 au front if (!response.getStatusCode().is2xxSuccessful()) { - throw new RuntimeException("PrestaShop returned non-2xx status: " + response.getStatusCode()); + throw new RuntimeException("PrestaShop returned non-2xx status: " + + response.getStatusCode() + " for URL " + url); } return response.getBody();