Update api/src/main/java/fr/gameovergne/api/service/prestashop/PrestashopClient.java

This commit is contained in:
2025-11-25 18:35:55 +00:00
parent d3f47549f9
commit 61e164732c

View File

@@ -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();