favorites #57

Merged
goc_daniel merged 6 commits from favorites into main 2026-04-10 08:09:14 +00:00
2 changed files with 14 additions and 14 deletions
Showing only changes of commit c5832c0cf5 - Show all commits

View File

@@ -19,8 +19,8 @@ type UIProductsRepo interface {
Find(id_lang, userID uint, p find.Paging, filt *filters.FiltersList) (find.Found[model.ProductInList], error) Find(id_lang, userID uint, p find.Paging, filt *filters.FiltersList) (find.Found[model.ProductInList], error)
AddToFavorites(userID uint, productID uint) error AddToFavorites(userID uint, productID uint) error
RemoveFromFavorites(userID uint, productID uint) error RemoveFromFavorites(userID uint, productID uint) error
ExistsInFavorites(userID uint, productID uint) (int64, error) ExistsInFavorites(userID uint, productID uint) (bool, error)
ProductInDatabase(productID uint) (int64, error) ProductInDatabase(productID uint) (bool, error)
} }
type ProductsRepo struct{} type ProductsRepo struct{}
@@ -144,20 +144,20 @@ func (repo *ProductsRepo) RemoveFromFavorites(userID uint, productID uint) error
Delete(&model.B2bFavorite{}).Error Delete(&model.B2bFavorite{}).Error
} }
func (repo *ProductsRepo) ExistsInFavorites(userID uint, productID uint) (int64, error) { func (repo *ProductsRepo) ExistsInFavorites(userID uint, productID uint) (bool, error) {
var count int64 var count int64
err := db.Get(). err := db.Get().
Table("b2b_favorites"). Table("b2b_favorites").
Where("user_id = ? AND product_id = ?", userID, productID). Where("user_id = ? AND product_id = ?", userID, productID).
Count(&count).Error Count(&count).Error
return count, err return count >= 1, err
dudzic_wiktor marked this conversation as resolved Outdated

why int64 instead of bool

why int64 instead of bool

ok, i can change it to bool

ok, i can change it to bool
} }
func (repo *ProductsRepo) ProductInDatabase(productID uint) (int64, error) { func (repo *ProductsRepo) ProductInDatabase(productID uint) (bool, error) {
var count int64 var count int64
err := db.Get(). err := db.Get().
Table(dbmodel.TableNamePsProduct). Table(dbmodel.TableNamePsProduct).
Where(dbmodel.PsProductCols.IDProduct.Col()+" = ?", productID). Where(dbmodel.PsProductCols.IDProduct.Col()+" = ?", productID).
Count(&count).Error Count(&count).Error
return count, err return count >= 1, err
} }

View File

@@ -35,19 +35,19 @@ func (s *ProductService) Find(id_lang, userID uint, p find.Paging, filters *filt
} }
func (s *ProductService) AddToFavorites(userID uint, productID uint) error { func (s *ProductService) AddToFavorites(userID uint, productID uint) error {
count, err := s.productsRepo.ProductInDatabase(productID) exists, err := s.productsRepo.ProductInDatabase(productID)
if err != nil { if err != nil {
return err return err
} }
if count <= 0 { if !exists {
return responseErrors.ErrProductNotFound return responseErrors.ErrProductNotFound
} }
count, err = s.productsRepo.ExistsInFavorites(userID, productID) exists, err = s.productsRepo.ExistsInFavorites(userID, productID)
if err != nil { if err != nil {
return err return err
} }
if count >= 1 { if exists {
return responseErrors.ErrAlreadyInFavorites return responseErrors.ErrAlreadyInFavorites
} }
@@ -55,19 +55,19 @@ func (s *ProductService) AddToFavorites(userID uint, productID uint) error {
} }
func (s *ProductService) RemoveFromFavorites(userID uint, productID uint) error { func (s *ProductService) RemoveFromFavorites(userID uint, productID uint) error {
count, err := s.productsRepo.ProductInDatabase(productID) exists, err := s.productsRepo.ProductInDatabase(productID)
if err != nil { if err != nil {
return err return err
} }
if count <= 0 { if !exists {
return responseErrors.ErrProductNotFound return responseErrors.ErrProductNotFound
} }
count, err = s.productsRepo.ExistsInFavorites(userID, productID) exists, err = s.productsRepo.ExistsInFavorites(userID, productID)
if err != nil { if err != nil {
return err return err
} }
if count <= 0 { if !exists {
return responseErrors.ErrNotInFavorites return responseErrors.ErrNotInFavorites
} }