From f7f56c29284bb8d1c6344cdb6ec3631ba9fb5b77 Mon Sep 17 00:00:00 2001 From: Daniel Goc Date: Fri, 10 Apr 2026 09:33:44 +0200 Subject: [PATCH] catching errors --- app/repos/productsRepo/productsRepo.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/app/repos/productsRepo/productsRepo.go b/app/repos/productsRepo/productsRepo.go index 7699c10..010fc2c 100644 --- a/app/repos/productsRepo/productsRepo.go +++ b/app/repos/productsRepo/productsRepo.go @@ -10,6 +10,7 @@ import ( "git.ma-al.com/goc_daniel/b2b/app/model/dbmodel" "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_marek/gormcol" "github.com/WinterYukky/gorm-extra-clause-plugin/exclause" ) @@ -129,6 +130,29 @@ func (repo *ProductsRepo) Find(id_lang, userID uint, p find.Paging, filt *filter } func (repo *ProductsRepo) AddToFavorites(userID uint, productID uint) error { + var count int64 + err := db.Get(). + Table(dbmodel.TableNamePsProduct). + Where(dbmodel.PsProductCols.IDProduct.Col()+" = ?", productID). + Count(&count).Error + if err != nil { + return err + } + if count == 0 { + return responseErrors.ErrProductNotFound + } + + err = db.Get(). + Table("b2b_favorites"). + Where("user_id = ? AND product_id = ?", userID, productID). + Count(&count).Error + if err != nil { + return err + } + if count > 0 { + return responseErrors.ErrAlreadyInFavorites + } + fav := model.B2bFavorite{ UserID: userID, ProductID: productID,