flamingo.me/flamingo-commerce/v3@v3.11.0/cart/domain/validation/itemValidator.go (about) 1 package validation 2 3 import ( 4 "context" 5 "fmt" 6 7 "flamingo.me/flamingo-commerce/v3/cart/domain/cart" 8 "flamingo.me/flamingo-commerce/v3/cart/domain/decorator" 9 10 "flamingo.me/flamingo/v3/framework/web" 11 12 "flamingo.me/flamingo-commerce/v3/product/domain" 13 ) 14 15 //go:generate go run github.com/vektra/mockery/v2@v2.42.3 --name ItemValidator --case snake 16 17 type ( 18 // ItemValidator checks a cart item 19 ItemValidator interface { 20 Validate(ctx context.Context, session *web.Session, cart *decorator.DecoratedCart, deliveryCode string, request cart.AddRequest, product domain.BasicProduct) error 21 } 22 23 // AddToCartNotAllowed error 24 AddToCartNotAllowed struct { 25 Reason string 26 RedirectHandlerName string 27 RedirectParams map[string]string 28 AdditionalData map[string]interface{} 29 } 30 ) 31 32 // Error message 33 func (e *AddToCartNotAllowed) Error() string { 34 return fmt.Sprintf("Product is not allowed: %v", e.Reason) 35 } 36 37 // MessageCode message code 38 func (e *AddToCartNotAllowed) MessageCode() string { 39 return e.Reason 40 }