github.com/Ingenico-ePayments/connect-sdk-go@v0.0.0-20240318153750-1f8cd329b9c9/domain/metadata/ShoppingCartExtension.go (about) 1 package metadata 2 3 import ( 4 "errors" 5 "strings" 6 ) 7 8 // ShoppingCartExtension represents the shopping extension present in the MetaDataProvider 9 type ShoppingCartExtension struct { 10 Creator string `json:"creator,omitempty"` 11 Name string `json:"name,omitempty"` 12 Version string `json:"version,omitempty"` 13 ExtensionID string `json:"extensionId,omitempty"` 14 } 15 16 // NewShoppingCartExtension creates a ShoppingCartExtension with the given creator, name and version 17 func NewShoppingCartExtension(creator string, name string, version string) (*ShoppingCartExtension, error) { 18 if strings.TrimSpace(creator) == "" { 19 return nil, errors.New("creator is required") 20 } 21 if strings.TrimSpace(creator) == "" { 22 return nil, errors.New("name is required") 23 } 24 if strings.TrimSpace(creator) == "" { 25 return nil, errors.New("version is required") 26 } 27 return &ShoppingCartExtension{creator, name, version, ""}, nil 28 } 29 30 // NewShoppingCartExtensionWithExtensionID creates a ShoppingCartExtension with the given creator, name, version and extension id 31 func NewShoppingCartExtensionWithExtensionID(creator string, name string, version string, extensionID string) (*ShoppingCartExtension, error) { 32 if strings.TrimSpace(creator) == "" { 33 return nil, errors.New("creator is required") 34 } 35 if strings.TrimSpace(creator) == "" { 36 return nil, errors.New("name is required") 37 } 38 if strings.TrimSpace(creator) == "" { 39 return nil, errors.New("version is required") 40 } 41 if strings.TrimSpace(extensionID) == "" { 42 return nil, errors.New("extensionID is required") 43 } 44 return &ShoppingCartExtension{creator, name, version, extensionID}, nil 45 }