Merge branch 'main' of ssh://git.ma-al.com:8822/goc_daniel/b2b into product-procedures
This commit is contained in:
@@ -9,6 +9,7 @@ import (
|
||||
constdata "git.ma-al.com/goc_daniel/b2b/app/utils/const_data"
|
||||
"git.ma-al.com/goc_daniel/b2b/app/utils/query/filters"
|
||||
"git.ma-al.com/goc_daniel/b2b/app/utils/query/find"
|
||||
"git.ma-al.com/goc_daniel/b2b/app/utils/responseErrors"
|
||||
"git.ma-al.com/goc_daniel/b2b/app/view"
|
||||
)
|
||||
|
||||
@@ -62,6 +63,7 @@ func (s *ProductService) Get(
|
||||
|
||||
func (s *ProductService) Find(
|
||||
idLang uint,
|
||||
userID uint,
|
||||
p find.Paging,
|
||||
filters *filters.FiltersList,
|
||||
customer *model.Customer,
|
||||
@@ -73,7 +75,7 @@ func (s *ProductService) Find(
|
||||
return nil, errors.New("customer is nil or missing fields")
|
||||
}
|
||||
|
||||
found, err := s.productsRepo.Find(idLang, p, filters)
|
||||
found, err := s.productsRepo.Find(idLang, userID, p, filters)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -122,4 +124,45 @@ func (s *ProductService) GetProductAttributes(
|
||||
}
|
||||
|
||||
return variants, nil
|
||||
|
||||
}
|
||||
|
||||
func (s *ProductService) AddToFavorites(userID uint, productID uint) error {
|
||||
exists, err := s.productsRepo.ProductInDatabase(productID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !exists {
|
||||
return responseErrors.ErrProductNotFound
|
||||
}
|
||||
|
||||
exists, err = s.productsRepo.ExistsInFavorites(userID, productID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if exists {
|
||||
return responseErrors.ErrAlreadyInFavorites
|
||||
}
|
||||
|
||||
return s.productsRepo.AddToFavorites(userID, productID)
|
||||
}
|
||||
|
||||
func (s *ProductService) RemoveFromFavorites(userID uint, productID uint) error {
|
||||
exists, err := s.productsRepo.ProductInDatabase(productID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !exists {
|
||||
return responseErrors.ErrProductNotFound
|
||||
}
|
||||
|
||||
exists, err = s.productsRepo.ExistsInFavorites(userID, productID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if !exists {
|
||||
return responseErrors.ErrNotInFavorites
|
||||
}
|
||||
|
||||
return s.productsRepo.RemoveFromFavorites(userID, productID)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user