diff --git a/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/integration/prestashop/exception/PrestashopApiException.java b/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/integration/prestashop/exception/PrestashopApiException.java index bd62be5..c600601 100644 --- a/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/integration/prestashop/exception/PrestashopApiException.java +++ b/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/integration/prestashop/exception/PrestashopApiException.java @@ -17,6 +17,13 @@ public class PrestashopApiException extends RuntimeException { this.body = body; } + /** Use when there is no HTTP status code (e.g. inconsistent API state). */ + public PrestashopApiException(String message) { + super(message); + this.statusCode = null; + this.body = null; + } + public HttpStatusCode getStatusCode() { return statusCode; } public String getBody() { return body; } } diff --git a/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/ProductSyncService.java b/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/ProductSyncService.java index 061c4e6..33deaae 100644 --- a/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/ProductSyncService.java +++ b/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/ProductSyncService.java @@ -98,6 +98,10 @@ public class ProductSyncService { if (existing.isEmpty()) { PrestashopProductDto created = prestashopClient.createProduct(toPrestashopDto(dolProduct, null)); + if (created == null) { + throw new PrestashopApiException( + "Product created in PS but not found via GET (reference=" + sku + ")"); + } productMappingRepository.save(ProductMapping.builder() .sku(sku) .dolibarrId(dolProduct.id())