Skip to content

Commit

Permalink
Query userGame
Browse files Browse the repository at this point in the history
  • Loading branch information
BraisCabo committed Feb 16, 2023
1 parent 4af945a commit dc51f88
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 16 deletions.
2 changes: 1 addition & 1 deletion backend/src/main/java/app/controller/UserController.java
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ public String profile(Model model, @PathVariable long id) {
}
if (user.getId().equals(currentUser.getId())) {
model.addAttribute("user", user);
List<Game> purchasedGames = purchaseService.purchasedGames(user);
List<Game> purchasedGames = purchaseService.purchasedGamesByUser(user);
model.addAttribute("myGames", purchasedGames);
model.addAttribute("haveGames", !purchasedGames.isEmpty());
model.addAttribute("gamesNumber", purchasedGames.size());
Expand Down
7 changes: 6 additions & 1 deletion backend/src/main/java/app/repository/PurchaseRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,17 @@
import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import app.model.Game;
import app.model.Purchase;
import app.model.User;

public interface PurchaseRepository extends JpaRepository<Purchase, Long> {
List<Purchase> findByUser(User user);


@Query("SELECT DISTINCT g FROM Purchase p JOIN p.games g WHERE p.user = :user")
List<Game> findGamesByUser(@Param("user") User user);
}

16 changes: 2 additions & 14 deletions backend/src/main/java/app/service/PurchaseService.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,13 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashSet;
import java.util.List;
import java.util.Optional;
import java.util.Set;

import app.model.Game;
import app.model.Purchase;
import app.model.User;
import app.repository.PurchaseRepository;
import java.util.ArrayList;

@Service
public class PurchaseService {
Expand All @@ -31,17 +28,8 @@ public void deleteById(long id) {
purchases.deleteById(id);
}

public Set<Game> purchasedGamesByUser(User user) {
List<Purchase> findByUser = purchases.findByUser(user);
Set<Game> games = new HashSet<>();
for (Purchase purchase : findByUser) {
games.addAll(purchase.getGames());
}
return games;
}

public List<Game> purchasedGames(User user){
return new ArrayList<>(purchasedGamesByUser(user));
public List<Game> purchasedGamesByUser(User user) {
return purchases.findGamesByUser(user);
}

public int numberOfGames(User user){
Expand Down

0 comments on commit dc51f88

Please sign in to comment.