Skip to content

Commit

Permalink
fix: Favorite endpoints do not save changes properly
Browse files Browse the repository at this point in the history
  • Loading branch information
shorinami committed Jan 12, 2024
1 parent f6c39a1 commit 6514e9a
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.sellbycar.marketplace.image.ImageDAO;
import com.sellbycar.marketplace.image.ImageService;
import com.sellbycar.marketplace.user.UserDAO;
import com.sellbycar.marketplace.user.UserRepository;
import com.sellbycar.marketplace.user.UserService;
import com.sellbycar.marketplace.util.exception.RequestException;
import jakarta.transaction.Transactional;
Expand Down Expand Up @@ -32,6 +33,7 @@ public class AdvertisementServiceImpl implements AdvertisementService {
private final UserService userService;
private final AdvertisementMapper advertisementMapper;
private final ImageService imageService;
private final UserRepository userRepository;

@Override
public List<AdvertisementDTO> findAdvertisements(AdvertisementFilter filter, Sort sort, int page, int size) {
Expand Down Expand Up @@ -114,7 +116,8 @@ public AdvertisementDAO addToFavoriteList(Long id) {
UserDAO user = userService.getUserFromSecurityContextHolder();
AdvertisementDAO advertisement = advertisementRepository.findById(id)
.orElseThrow(() -> RequestException.notFound("Advertisement does not exist."));
user.getFavorites().add(advertisement);
user.addFavorite(advertisement);
userRepository.save(user);
return advertisement;
}

Expand All @@ -123,7 +126,8 @@ public void removeFromFavoriteList(Long id) {
UserDAO user = userService.getUserFromSecurityContextHolder();
AdvertisementDAO advertisement = advertisementRepository.findById(id)
.orElseThrow(() -> RequestException.notFound("Advertisement does not exist."));
user.getFavorites().remove(advertisement);
user.removeFavorite(advertisement);
userRepository.save(user);
}

@Transactional
Expand Down
14 changes: 14 additions & 0 deletions src/main/java/com/sellbycar/marketplace/user/UserDAO.java
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,18 @@ public class UserDAO implements Serializable {

@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private Set<AdvertisementDAO> advertisements;

public void addFavorite(AdvertisementDAO advertisement) {
if (favorites == null) {
favorites = Set.of(advertisement);
} else {
favorites.add(advertisement);
}
}

public void removeFavorite(AdvertisementDAO advertisement) {
if (favorites != null) {
favorites.remove(advertisement);
}
}
}

0 comments on commit 6514e9a

Please sign in to comment.