customer

package
v1.0.0-beta.211 Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2025 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	IncludeDeleted    = false
	DefaultPageNumber = 1
	DefaultPageSize   = 100
)
View Source
const (
	CustomerEventSubsystem  metadata.EventSubsystem = "customer"
	CustomerCreateEventName metadata.EventName      = "customer.created"
	CustomerUpdateEventName metadata.EventName      = "customer.updated"
	CustomerDeleteEventName metadata.EventName      = "customer.deleted"
)

Variables

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

Functions

func IsKeyConflictError

func IsKeyConflictError(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"`
}

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)
	CustomerExists(ctx context.Context, customer CustomerID) error
}

type CustomerCreateEvent

type CustomerCreateEvent struct {
	Customer *Customer `json:"customer"`
	UserID   *string   `json:"userId,omitempty"`
}

CustomerCreateEvent is an event that is emitted when a customer is created

func NewCustomerCreateEvent

func NewCustomerCreateEvent(ctx context.Context, customer *Customer) CustomerCreateEvent

NewCustomerCreateEvent creates a new customer create event

func (CustomerCreateEvent) EventMetadata

func (e CustomerCreateEvent) EventMetadata() metadata.EventMetadata

func (CustomerCreateEvent) EventName

func (e CustomerCreateEvent) EventName() string

func (CustomerCreateEvent) Validate

func (e CustomerCreateEvent) Validate() error

type CustomerDeleteEvent

type CustomerDeleteEvent struct {
	Customer *Customer `json:"customer"`
	UserID   *string   `json:"userId,omitempty"`
}

CustomerDeleteEvent is an event that is emitted when a customer is deleted

func NewCustomerDeleteEvent

func NewCustomerDeleteEvent(ctx context.Context, customer *Customer) CustomerDeleteEvent

NewCustomerDeleteEvent creates a new customer delete event

func (CustomerDeleteEvent) EventMetadata

func (e CustomerDeleteEvent) EventMetadata() metadata.EventMetadata

func (CustomerDeleteEvent) EventName

func (e CustomerDeleteEvent) EventName() string

func (CustomerDeleteEvent) Validate

func (e CustomerDeleteEvent) Validate() error

type CustomerID

type CustomerID models.NamespacedID

CustomerID represents a customer id

func (CustomerID) Validate

func (i CustomerID) Validate() error

type CustomerIDOrKey

type CustomerIDOrKey struct {
	Namespace string
	IDOrKey   string
}

CustomerIDOrKey represents a customer id or key

func (CustomerIDOrKey) Validate

func (i CustomerIDOrKey) Validate() error

type CustomerKey

type CustomerKey struct {
	Namespace string
	Key       string
}

CustomerKey represents a customer key

func (CustomerKey) Validate

func (i CustomerKey) 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)
	CustomerExists(ctx context.Context, customer CustomerID) error

	GetEntitlementValue(ctx context.Context, input GetEntitlementValueInput) (entitlement.EntitlementValue, error)
	GetCustomerAccess(ctx context.Context, input GetCustomerInput) (entitlement.Access, error)
}

type CustomerUpdateEvent

type CustomerUpdateEvent struct {
	Customer *Customer `json:"customer"`
	UserID   *string   `json:"userId,omitempty"`
}

CustomerUpdateEvent is an event that is emitted when a customer is updated

func NewCustomerUpdateEvent

func NewCustomerUpdateEvent(ctx context.Context, customer *Customer) CustomerUpdateEvent

NewCustomerUpdateEvent creates a new customer update event

func (CustomerUpdateEvent) EventMetadata

func (e CustomerUpdateEvent) EventMetadata() metadata.EventMetadata

func (CustomerUpdateEvent) EventName

func (e CustomerUpdateEvent) EventName() string

func (CustomerUpdateEvent) Validate

func (e CustomerUpdateEvent) Validate() 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 struct {
	CustomerID      *CustomerID
	CustomerKey     *CustomerKey
	CustomerIDOrKey *CustomerIDOrKey

	// Expand
	Expand []api.CustomerExpand
}

GetCustomerInput represents the input for the GetCustomer method

func (GetCustomerInput) Validate

func (i GetCustomerInput) Validate() error

type GetEntitlementValueInput

type GetEntitlementValueInput struct {
	CustomerID CustomerID
	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
	CustomerIDs  []string
}

ListCustomersInput represents the input for the ListCustomers method

func (ListCustomersInput) Validate

func (i ListCustomersInput) Validate() error

type NoopRequestValidator

type NoopRequestValidator struct{}

func (NoopRequestValidator) ValidateCreateCustomer

func (NoopRequestValidator) ValidateDeleteCustomer

func (NoopRequestValidator) ValidateUpdateCustomer

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