customer

package
v1.0.0-beta.198 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IncludeDeleted    = false
	DefaultPageNumber = 1
	DefaultPageSize   = 100
)

Variables

View Source
var (
	ErrValidatorAlreadyRegistered = errors.New("validator already registered")
)

Functions

func IsKeyConflictError

func IsKeyConflictError(err error) bool

func IsNotFoundError

func IsNotFoundError(err error) bool

func IsSubjectKeyConflictError

func IsSubjectKeyConflictError(err error) bool

Types

type Adapter

type Adapter interface {
	CustomerAdapter

	entutils.TxCreator
}

type CreateCustomerInput

type CreateCustomerInput struct {
	Namespace string
	CustomerMutate
}

CreateCustomerInput represents the input for the CreateCustomer method

func (CreateCustomerInput) Validate

func (i CreateCustomerInput) Validate() error

type Customer

type Customer struct {
	models.ManagedResource

	Key              *string                  `json:"key,omitempty"`
	UsageAttribution CustomerUsageAttribution `json:"usageAttribution"`
	PrimaryEmail     *string                  `json:"primaryEmail,omitempty"`
	Currency         *currencyx.Code          `json:"currency,omitempty"`
	BillingAddress   *models.Address          `json:"billingAddress,omitempty"`

	CurrentSubscriptionID *string `json:"currentSubscriptionId,omitempty"`
}

Customer represents a customer

func (Customer) GetID

func (c Customer) GetID() CustomerID

func (Customer) Validate

func (c Customer) Validate() error

type CustomerAdapter

type CustomerAdapter interface {
	ListCustomers(ctx context.Context, params ListCustomersInput) (pagination.PagedResponse[Customer], error)
	CreateCustomer(ctx context.Context, params CreateCustomerInput) (*Customer, error)
	DeleteCustomer(ctx context.Context, customer DeleteCustomerInput) error
	GetCustomer(ctx context.Context, customer GetCustomerInput) (*Customer, error)
	UpdateCustomer(ctx context.Context, params UpdateCustomerInput) (*Customer, error)
}

type CustomerID

type CustomerID models.NamespacedID

func (CustomerID) Validate

func (i CustomerID) Validate() error

type CustomerMutate

type CustomerMutate struct {
	Key              *string                  `json:"key,omitempty"`
	Name             string                   `json:"name"`
	Description      *string                  `json:"description,omitempty"`
	UsageAttribution CustomerUsageAttribution `json:"usageAttribution"`
	PrimaryEmail     *string                  `json:"primaryEmail"`
	Currency         *currencyx.Code          `json:"currency"`
	BillingAddress   *models.Address          `json:"billingAddress"`
}

func (CustomerMutate) Validate

func (c CustomerMutate) Validate() error

type CustomerService

type CustomerService interface {
	ListCustomers(ctx context.Context, params ListCustomersInput) (pagination.PagedResponse[Customer], error)
	CreateCustomer(ctx context.Context, params CreateCustomerInput) (*Customer, error)
	DeleteCustomer(ctx context.Context, customer DeleteCustomerInput) error
	GetCustomer(ctx context.Context, customer GetCustomerInput) (*Customer, error)
	UpdateCustomer(ctx context.Context, params UpdateCustomerInput) (*Customer, error)
	GetEntitlementValue(ctx context.Context, input GetEntitlementValueInput) (entitlement.EntitlementValue, error)
}

type CustomerUsageAttribution

type CustomerUsageAttribution struct {
	SubjectKeys []string `json:"subjectKeys"`
}

CustomerUsageAttribution represents the usage attribution for a customer

func (CustomerUsageAttribution) GetSubjectKey

func (c CustomerUsageAttribution) GetSubjectKey() (string, error)

UsageAttribution

type DeleteCustomerInput

type DeleteCustomerInput CustomerID

DeleteCustomerInput represents the input for the DeleteCustomer method

func (DeleteCustomerInput) Validate

func (i DeleteCustomerInput) Validate() error

type GetCustomerInput

type GetCustomerInput CustomerID

GetCustomerInput represents the input for the GetCustomer method

func (GetCustomerInput) Validate

func (i GetCustomerInput) Validate() error

type GetEntitlementValueInput

type GetEntitlementValueInput struct {
	ID         models.NamespacedID
	FeatureKey string
}

func (GetEntitlementValueInput) Validate

func (i GetEntitlementValueInput) Validate() error

type KeyConflictError

type KeyConflictError struct {
	// contains filtered or unexported fields
}

KeyConflictError represents an error when a subject key is already associated with a customer

func NewKeyConflictError

func NewKeyConflictError(namespace, key string) *KeyConflictError

NewKeyConflictError creates a new KeyConflictError

func (KeyConflictError) Error

func (e KeyConflictError) Error() string

func (KeyConflictError) Unwrap

func (e KeyConflictError) Unwrap() error

type ListCustomersInput

type ListCustomersInput struct {
	Namespace string
	pagination.Page

	IncludeDeleted bool

	// Order
	OrderBy api.CustomerOrderBy
	Order   sortx.Order

	// Filters
	Key          *string
	Name         *string
	PrimaryEmail *string
	Subject      *string
	PlanKey      *string
}

ListCustomersInput represents the input for the ListCustomers method

type NoopRequestValidator

type NoopRequestValidator struct{}

func (NoopRequestValidator) ValidateCreateCustomer

func (NoopRequestValidator) ValidateDeleteCustomer

func (NoopRequestValidator) ValidateUpdateCustomer

type NotFoundError

type NotFoundError struct {
	// contains filtered or unexported fields
}

func NewNotFoundError

func NewNotFoundError(id CustomerID) *NotFoundError

func (NotFoundError) Error

func (e NotFoundError) Error() string

func (NotFoundError) Unwrap

func (e NotFoundError) Unwrap() error

type RequestValidator

type RequestValidator interface {
	ValidateDeleteCustomer(context.Context, DeleteCustomerInput) error
	ValidateCreateCustomer(context.Context, CreateCustomerInput) error
	ValidateUpdateCustomer(context.Context, UpdateCustomerInput) error
}

type RequestValidatorKey

type RequestValidatorKey string

type RequestValidatorRegistry

type RequestValidatorRegistry interface {
	RequestValidator

	Register(RequestValidator)
}

func NewRequestValidatorRegistry

func NewRequestValidatorRegistry() RequestValidatorRegistry

type RequestValidatorService

type RequestValidatorService interface {
	RegisterRequestValidator(RequestValidator)
}

type Service

type Service interface {
	CustomerService
	RequestValidatorService
}

type SubjectKeyConflictError

type SubjectKeyConflictError struct {
	// contains filtered or unexported fields
}

SubjectKeyConflictError represents an error when a subject key is already associated with a customer

func NewSubjectKeyConflictError

func NewSubjectKeyConflictError(namespace string, subjectKeys []string) *SubjectKeyConflictError

NewSubjectKeyConflictError creates a new SubjectKeyConflictError

func (SubjectKeyConflictError) Error

func (e SubjectKeyConflictError) Error() string

func (SubjectKeyConflictError) Unwrap

func (e SubjectKeyConflictError) Unwrap() error

type UpdateAfterDeleteError

type UpdateAfterDeleteError struct {
	// contains filtered or unexported fields
}

func NewUpdateAfterDeleteError

func NewUpdateAfterDeleteError() *UpdateAfterDeleteError

func (UpdateAfterDeleteError) Error

func (e UpdateAfterDeleteError) Error() string

func (UpdateAfterDeleteError) Unwrap

func (e UpdateAfterDeleteError) Unwrap() error

type UpdateCustomerInput

type UpdateCustomerInput struct {
	CustomerID CustomerID
	CustomerMutate
}

UpdateCustomerInput represents the input for the UpdateCustomer method

func (UpdateCustomerInput) Validate

func (i UpdateCustomerInput) Validate() error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL