add carts
This commit is contained in:
82
app/repos/cartsRepo/cartsRepo.go
Normal file
82
app/repos/cartsRepo/cartsRepo.go
Normal file
@@ -0,0 +1,82 @@
|
||||
package cartsRepo
|
||||
|
||||
import (
|
||||
"git.ma-al.com/goc_daniel/b2b/app/db"
|
||||
"git.ma-al.com/goc_daniel/b2b/app/model"
|
||||
constdata "git.ma-al.com/goc_daniel/b2b/app/utils/const_data"
|
||||
)
|
||||
|
||||
type UICartsRepo interface {
|
||||
CartsAmount(user_id uint) (uint, error)
|
||||
CreateNewCart(user_id uint) (model.CustomerCart, error)
|
||||
UserHasCart(user_id uint, cart_id uint) (uint, error)
|
||||
UpdateCartName(user_id uint, cart_id uint, new_name string) error
|
||||
RetrieveCart(user_id uint, cart_id uint) (*model.CustomerCart, error)
|
||||
}
|
||||
|
||||
type CartsRepo struct{}
|
||||
|
||||
func New() UICartsRepo {
|
||||
return &CartsRepo{}
|
||||
}
|
||||
|
||||
func (repo *CartsRepo) CartsAmount(user_id uint) (uint, error) {
|
||||
var amt uint
|
||||
|
||||
err := db.DB.
|
||||
Table("b2b_customer_carts").
|
||||
Select("COUNT(*) AS amt").
|
||||
Where("user_id = ?", user_id).
|
||||
Scan(&amt).
|
||||
Error
|
||||
|
||||
return amt, err
|
||||
}
|
||||
|
||||
func (repo *CartsRepo) CreateNewCart(user_id uint) (model.CustomerCart, error) {
|
||||
var name string
|
||||
name = constdata.DEFAULT_NEW_CART_NAME
|
||||
|
||||
cart := model.CustomerCart{
|
||||
UserID: uint64(user_id),
|
||||
Name: &name,
|
||||
}
|
||||
err := db.DB.Create(&cart).Error
|
||||
|
||||
return cart, err
|
||||
}
|
||||
|
||||
func (repo *CartsRepo) UserHasCart(user_id uint, cart_id uint) (uint, error) {
|
||||
var amt uint
|
||||
|
||||
err := db.DB.
|
||||
Table("b2b_customer_carts").
|
||||
Select("COUNT(*) AS amt").
|
||||
Where("user_id = ? AND cart_id = ?", user_id, cart_id).
|
||||
Scan(&amt).
|
||||
Error
|
||||
|
||||
return amt, err
|
||||
}
|
||||
|
||||
func (repo *CartsRepo) UpdateCartName(user_id uint, cart_id uint, new_name string) error {
|
||||
err := db.DB.
|
||||
Table("b2b_customer_carts").
|
||||
Where("user_id = ? AND cart_id = ?", user_id, cart_id).
|
||||
Update("name", new_name).
|
||||
Error
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func (repo *CartsRepo) RetrieveCart(user_id uint, cart_id uint) (*model.CustomerCart, error) {
|
||||
var cart model.CustomerCart
|
||||
|
||||
err := db.DB.
|
||||
Preload("b2b_carts_products").
|
||||
Where("user_id = ? AND cart_id = ?", user_id, cart_id).
|
||||
First(&cart).
|
||||
Error
|
||||
|
||||
return &cart, err
|
||||
}
|
||||
Reference in New Issue
Block a user