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  }