diff --git a/src/main/java/com/magamochi/catalog/service/MangaResolutionService.java b/src/main/java/com/magamochi/catalog/service/MangaResolutionService.java index a38740b..f269cea 100644 --- a/src/main/java/com/magamochi/catalog/service/MangaResolutionService.java +++ b/src/main/java/com/magamochi/catalog/service/MangaResolutionService.java @@ -157,11 +157,13 @@ public class MangaResolutionService { mangaRepository.save( Manga.builder().title(title).aniListId(aniListId).malId(malId).build()); - try { - mangaUpdateProducer.sendMangaUpdateCommand(new MangaUpdateCommand(manga.getId())); - } catch (Exception e) { - log.error( - "Failed to send manga update command for manga '{}' (ID: {})", title, manga.getId(), e); + if (nonNull(aniListId) || nonNull(malId)) { + try { + mangaUpdateProducer.sendMangaUpdateCommand(new MangaUpdateCommand(manga.getId())); + } catch (Exception e) { + log.error( + "Failed to send manga update command for manga '{}' (ID: {})", title, manga.getId(), e); + } } return manga; diff --git a/src/main/java/com/magamochi/catalog/service/MangaUpdateService.java b/src/main/java/com/magamochi/catalog/service/MangaUpdateService.java index a51203e..300e478 100644 --- a/src/main/java/com/magamochi/catalog/service/MangaUpdateService.java +++ b/src/main/java/com/magamochi/catalog/service/MangaUpdateService.java @@ -1,5 +1,6 @@ package com.magamochi.catalog.service; +import static java.util.Objects.isNull; import static java.util.Objects.nonNull; import com.magamochi.catalog.model.dto.MangaDataDTO; @@ -49,6 +50,12 @@ public class MangaUpdateService { log.info("Updating manga with ID {}", mangaId); var manga = mangaService.find(mangaId); + + if (isNull(manga.getAniListId()) && isNull(manga.getMalId())) { + log.info("Skipping update for manga {}: no external IDs available", mangaId); + return; + } + var mangaData = fetchExternalMangaData(manga); applyUpdatesToDatabase(manga, mangaData); @@ -95,8 +102,7 @@ public class MangaUpdateService { throw (RuntimeException) fetchException; } - throw new IllegalStateException( - "Cannot update manga: No external provider IDs found for Manga " + manga.getId()); + return null; } private void applyUpdatesToDatabase(Manga manga, MangaDataDTO mangaData) {