diff --git a/src/main/java/de/grimsi/gameyfin/repositories/DetectedGameRepository.java b/src/main/java/de/grimsi/gameyfin/repositories/DetectedGameRepository.java index 0122f07..78ac2d0 100644 --- a/src/main/java/de/grimsi/gameyfin/repositories/DetectedGameRepository.java +++ b/src/main/java/de/grimsi/gameyfin/repositories/DetectedGameRepository.java @@ -6,4 +6,5 @@ import org.springframework.data.jpa.repository.JpaRepository; public interface DetectedGameRepository extends JpaRepository { boolean existsByPath(String path); + boolean existsBySlug(String slug); } diff --git a/src/main/java/de/grimsi/gameyfin/service/GameService.java b/src/main/java/de/grimsi/gameyfin/service/GameService.java index 6ff55f6..d9679ff 100644 --- a/src/main/java/de/grimsi/gameyfin/service/GameService.java +++ b/src/main/java/de/grimsi/gameyfin/service/GameService.java @@ -36,9 +36,13 @@ public class GameService { } public DetectedGame mapUnmappedFile(Long unmappedGameId, String igdbSlug) { + UnmappableFile unmappableFile = unmappableFileRepository.findById(unmappedGameId) .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, "Unmapped file with id '%d' does not exist.".formatted(unmappedGameId))); + if(detectedGameRepository.existsBySlug(igdbSlug)) + throw new ResponseStatusException(HttpStatus.CONFLICT, "Game with slug '%s' already exists in database.".formatted(igdbSlug)); + Igdb.Game igdbGame = igdbWrapper.getGameBySlug(igdbSlug) .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, "Game with slug '%s' does not exist on IGDB.".formatted(igdbSlug)));