36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
const FavoriteRepository = require("../repositories/FavoriteRepository");
|
|
const ProductRepository = require("../repositories/ProductRepository");
|
|
|
|
class FavoriteService {
|
|
getFavorites(userId, householdId) {
|
|
return FavoriteRepository.getByHousehold(householdId);
|
|
}
|
|
|
|
getFavoriteIds(userId, householdId) {
|
|
return FavoriteRepository.getIdsByHousehold(householdId);
|
|
}
|
|
|
|
toggleFavorite(userId, productId, householdId) {
|
|
const product = ProductRepository.findById(productId, householdId);
|
|
if (!product) return false;
|
|
|
|
const current = FavoriteRepository.find(householdId, productId);
|
|
if (current) {
|
|
FavoriteRepository.remove(householdId, productId);
|
|
return false;
|
|
}
|
|
|
|
FavoriteRepository.add(householdId, productId);
|
|
return true;
|
|
}
|
|
|
|
removeFavorite(userId, productId, householdId) {
|
|
const product = ProductRepository.findById(productId, householdId);
|
|
if (!product) return false;
|
|
|
|
return FavoriteRepository.remove(householdId, productId).changes > 0;
|
|
}
|
|
}
|
|
|
|
module.exports = new FavoriteService();
|