diff --git a/paladins-webservice/src/main/java/dev/luzifer/data/repository/BannedChampRepository.java b/paladins-webservice/src/main/java/dev/luzifer/data/repository/BannedChampRepository.java new file mode 100644 index 0000000..4f1ad4c --- /dev/null +++ b/paladins-webservice/src/main/java/dev/luzifer/data/repository/BannedChampRepository.java @@ -0,0 +1,6 @@ +package dev.luzifer.data.repository; + +import dev.luzifer.data.entity.BannedChamp; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface BannedChampRepository extends JpaRepository {} diff --git a/paladins-webservice/src/main/java/dev/luzifer/data/service/MatchService.java b/paladins-webservice/src/main/java/dev/luzifer/data/service/MatchService.java index 8ca36a7..7b00627 100644 --- a/paladins-webservice/src/main/java/dev/luzifer/data/service/MatchService.java +++ b/paladins-webservice/src/main/java/dev/luzifer/data/service/MatchService.java @@ -2,8 +2,10 @@ import dev.luzifer.data.converter.EntityConverter; import dev.luzifer.data.dto.GameDto; +import dev.luzifer.data.entity.BannedChamp; import dev.luzifer.data.entity.Map; import dev.luzifer.data.entity.Match; +import dev.luzifer.data.repository.BannedChampRepository; import dev.luzifer.data.repository.MapRepository; import dev.luzifer.data.repository.MatchRepository; import java.util.Arrays; @@ -19,21 +21,25 @@ public class MatchService extends BaseService { private final MatchRepository matchRepository; private final MapRepository mapRepository; + private final BannedChampRepository bannedChampRepository; @Autowired public MatchService( MatchRepository matchRepository, MapRepository mapRepository, + BannedChampRepository bannedChampRepository, EntityConverter entityConverter) { super(entityConverter); this.matchRepository = matchRepository; this.mapRepository = mapRepository; + this.bannedChampRepository = bannedChampRepository; } @Transactional public void processMatchData(GameDto[] gameDtoArray) { saveMatches(gameDtoArray); saveMaps(gameDtoArray); + saveBannedChamps(gameDtoArray); } private void saveMatches(GameDto[] gameDtoArray) { @@ -50,6 +56,13 @@ private void saveMaps(GameDto[] gameDtoArray) { mapRepository.saveAll(mapsToSave); } + private void saveBannedChamps(GameDto[] gameDtoArray) { + Set bannedChampsToSave = new HashSet<>(); + Arrays.stream(gameDtoArray) + .forEach(game -> bannedChampsToSave.addAll(entityConverter.convertBannedChamps(game))); + bannedChampRepository.saveAll(bannedChampsToSave); + } + @Cacheable("matchCount") public long countMatches() { return matchRepository.count();