diff --git a/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/OrderSyncService.java b/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/OrderSyncService.java index 1f7d0ba..b79ad62 100644 --- a/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/OrderSyncService.java +++ b/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/OrderSyncService.java @@ -14,6 +14,7 @@ import com.teterialosjuanjos.tfg.sync_service.mapping.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestClientException; import java.time.Instant; import java.time.LocalDateTime; @@ -83,13 +84,18 @@ public class OrderSyncService { try { importOrder(psOrder); processed++; - } catch (DolibarrApiException | PrestashopApiException e) { + } catch (DolibarrApiException | PrestashopApiException | RestClientException e) { failed++; String msg = "PS order %d: %s".formatted(psOrder.id(), e.getMessage()); errors.add(msg); log.warn("OrderSync item failed: {}", msg); } } + } catch (RestClientException e) { + failed++; + String msg = "Failed to fetch orders from PrestaShop: " + e.getMessage(); + errors.add(msg); + log.error("OrderSync infrastructure error: {}", msg, e); } finally { syncLog.setFinishedAt(Instant.now()); syncLog.setItemsProcessed(processed); 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 ec83dd4..781635d 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 @@ -11,6 +11,7 @@ import com.teterialosjuanjos.tfg.sync_service.mapping.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestClientException; import java.time.Instant; import java.util.ArrayList; @@ -68,7 +69,7 @@ public class ProductSyncService { try { pushProduct(product); processed++; - } catch (DolibarrApiException | PrestashopApiException e) { + } catch (DolibarrApiException | PrestashopApiException | RestClientException e) { failed++; String msg = "SKU %s: %s".formatted(product.ref(), e.getMessage()); errors.add(msg); @@ -76,6 +77,11 @@ public class ProductSyncService { markError(product.ref(), e.getMessage()); } } + } catch (RestClientException e) { + failed++; + String msg = "Failed to fetch products from Dolibarr: " + e.getMessage(); + errors.add(msg); + log.error("ProductSync infrastructure error: {}", msg, e); } finally { syncLog.setFinishedAt(Instant.now()); syncLog.setItemsProcessed(processed); diff --git a/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/StockSyncService.java b/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/StockSyncService.java index a164835..f85d9e2 100644 --- a/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/StockSyncService.java +++ b/sync-service/src/main/java/com/teterialosjuanjos/tfg/sync_service/sync/StockSyncService.java @@ -10,6 +10,7 @@ import com.teterialosjuanjos.tfg.sync_service.mapping.*; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.web.client.RestClientException; import java.time.Instant; import java.util.ArrayList; @@ -55,13 +56,18 @@ public class StockSyncService { if (pushStock(mapping)) { processed++; } - } catch (DolibarrApiException | PrestashopApiException e) { + } catch (DolibarrApiException | PrestashopApiException | RestClientException e) { failed++; String msg = "SKU %s: %s".formatted(mapping.getSku(), e.getMessage()); errors.add(msg); log.warn("StockSync item failed: {}", msg); } } + } catch (RestClientException e) { + failed++; + String msg = "Infrastructure error: " + e.getMessage(); + errors.add(msg); + log.error("StockSync infrastructure error: {}", msg, e); } finally { syncLog.setFinishedAt(Instant.now()); syncLog.setItemsProcessed(processed);