VAllBoardGameService.java
package com.codecool.bytebattlers.service;
import com.codecool.bytebattlers.controller.dto.VAllBoardGameDto;
import com.codecool.bytebattlers.mapper.VAllBoardGameMapper;
import com.codecool.bytebattlers.model.VAllBoardGame;
import com.codecool.bytebattlers.repository.VAllBoardGameRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@Service
public class VAllBoardGameService {
private final VAllBoardGameRepository vAllBoardGameRepository;
private final VAllBoardGameMapper vAllBoardGameMapper;
@Autowired
public VAllBoardGameService(VAllBoardGameRepository vAllBoardGameRepository, VAllBoardGameMapper vAllBoardGameMapper) {
this.vAllBoardGameRepository = vAllBoardGameRepository;
this.vAllBoardGameMapper = vAllBoardGameMapper;
}
public List<VAllBoardGameDto> findAll() {
return vAllBoardGameRepository.findAll().stream().map(vAllBoardGameMapper::toDto).toList();
}
public List<VAllBoardGame> findVAllBoardGamesByGameName(String boardGameName) {
return vAllBoardGameRepository.findBoardGamesByGameNameContainingIgnoreCase(boardGameName);
}
public List<VAllBoardGameDto> findVAllBoardGamesDtoByGameName(String boardGameName) {
List<VAllBoardGame> searchedBoardgames = findVAllBoardGamesByGameName(boardGameName);
return searchedBoardgames.stream()
.map(vAllBoardGameMapper::toDto)
.toList();
}
public List<VAllBoardGameDto> findAllBoardGamesByPublisher(String publisherName) {
return vAllBoardGameRepository.findVAllBoardGamesByPublisherName(publisherName)
.stream().map(vAllBoardGameMapper::toDto)
.toList();
}
public List<VAllBoardGameDto> findVAllBoardGamesByCategory(String categoryName) {
return vAllBoardGameRepository.findVAllBoardGamesByCategoriesContaining(categoryName)
.stream().map(vAllBoardGameMapper::toDto).toList();
}
public List<VAllBoardGameDto> findVAllBoardGamesByDescription(String description) {
return vAllBoardGameRepository.findVAllBoardGamesByDescriptionContainingIgnoreCase(description)
.stream().map(vAllBoardGameMapper::toDto).toList();
}
public List<VAllBoardGameDto> sortByName(String order) {
if (order.equals("asc")) {
return vAllBoardGameRepository.findAllByOrderByGameNameAsc()
.stream().map(vAllBoardGameMapper::toDto).toList();
} else if (order.equals("desc")) {
return vAllBoardGameRepository.findAllByOrderByGameNameDesc()
.stream().map(vAllBoardGameMapper::toDto)
.toList();
}
return Collections.emptyList();
}
public List<VAllBoardGameDto> findByLessThanOrEqualsMaxPlayer(int maxPlayer){
return vAllBoardGameRepository.findAllByMaxPlayerLessThanEqual(maxPlayer)
.stream().map(vAllBoardGameMapper::toDto)
.toList();
}
public List<VAllBoardGameDto> findByMoreThanOrEqualsMinPlayer(int minPlayer) {
return vAllBoardGameRepository.findAllByMinPlayerGreaterThanEqual(minPlayer)
.stream().map(vAllBoardGameMapper::toDto)
.toList();
}
public List<VAllBoardGameDto> findByMoreThanOrEqualRating(double rating) {
return vAllBoardGameRepository.findAllByAverageRatingGreaterThanEqual(rating)
.stream().map(vAllBoardGameMapper::toDto)
.toList();
}
}