Documentation
¶
Index ¶
- Variables
- func GetStripeTestClockFromContext(ctx context.Context) (string, bool)
- func GetStripeWebhookSignatureFromContext(ctx context.Context) (string, bool)
- func SetStripeTestClockInContext(ctx context.Context, s string) context.Context
- func SetStripeWebhookSignatureInContext(ctx context.Context, s string) context.Context
- type Address
- type CreditService
- type Customer
- type Details
- type Filter
- type PaymentMethod
- type Provider
- type Repository
- type Service
- func (s *Service) Close() error
- func (s *Service) Create(ctx context.Context, customer Customer, offline bool) (Customer, error)
- func (s *Service) Delete(ctx context.Context, id string) error
- func (s *Service) Disable(ctx context.Context, id string) error
- func (s *Service) Enable(ctx context.Context, id string) error
- func (s *Service) GetByID(ctx context.Context, id string) (Customer, error)
- func (s *Service) GetByOrgID(ctx context.Context, orgID string) (Customer, error)
- func (s *Service) GetDetails(ctx context.Context, customerID string) (Details, error)
- func (s *Service) Init(ctx context.Context) error
- func (s *Service) List(ctx context.Context, filter Filter) ([]Customer, error)
- func (s *Service) ListPaymentMethods(ctx context.Context, id string) ([]PaymentMethod, error)
- func (s *Service) RegisterToProvider(ctx context.Context, customer Customer) (*stripe.Customer, error)
- func (s *Service) RegisterToProviderIfRequired(ctx context.Context, customerID string) (Customer, error)
- func (s *Service) SyncWithProvider(ctx context.Context, customr Customer) error
- func (s *Service) TriggerSyncByProviderID(ctx context.Context, id string) error
- func (s *Service) Update(ctx context.Context, customer Customer) (Customer, error)
- func (s *Service) UpdateCreditMinByID(ctx context.Context, customerID string, limit int64) (Details, error)
- func (s *Service) UpdateDetails(ctx context.Context, customerID string, details Details) (Details, error)
- type State
- type Tax
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrNotFound = errors.New("customer not found") ErrInvalidUUID = errors.New("invalid syntax of uuid") ErrInvalidID = errors.New("billing customer id is invalid") ErrConflict = errors.New("customer already exist") ErrActiveConflict = errors.New("an active account already exists for the organization") ErrInvalidDetail = errors.New("invalid billing customer detail") ErrDisabled = errors.New("billing customer is disabled") ErrExistingAccountWithPendingDues = errors.New("existing account with pending dues found") )
Functions ¶
func GetStripeTestClockFromContext ¶ added in v0.8.29
GetStripeTestClockFromContext returns the stripe test clock id from the context
func GetStripeWebhookSignatureFromContext ¶ added in v0.13.0
func SetStripeTestClockInContext ¶ added in v0.8.29
SetStripeTestClockInContext sets the stripe test clock id in the context
Types ¶
type Address ¶
type Address struct {
City string `json:"city"`
Country string `json:"country"`
Line1 string `json:"line1"`
Line2 string `json:"line2"`
PostalCode string `json:"postal_code"`
State string `json:"state"`
}
func (Address) HasMinimumRequiredAddress ¶ added in v0.65.0
HasMinimumRequiredAddress checks if the address has postal code and country
type CreditService ¶ added in v0.34.0
type Customer ¶
type Customer struct {
ID string
OrgID string
// Provider id identifier set by the billing engine provider
// could be empty if the customer is created as offline
ProviderID string
Name string
Email string
Phone string
Address Address
TaxData []Tax
// Currency Three-letter ISO 4217 currency code in lower case
Currency string `default:"usd"`
Metadata metadata.Metadata
// Stripe specific fields
// StripeTestClockID is used for testing purposes only to simulate a subscription
StripeTestClockID *string
State State
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time
}
func (Customer) HasMinimumRequiredAddress ¶ added in v0.65.0
HasMinimumRequiredAddress checks if the customer has minimum required address
type PaymentMethod ¶ added in v0.8.13
type Repository ¶
type Repository interface {
GetByID(ctx context.Context, id string) (Customer, error)
List(ctx context.Context, filter Filter) ([]Customer, error)
Create(ctx context.Context, customer Customer) (Customer, error)
UpdateByID(ctx context.Context, customer Customer) (Customer, error)
Delete(ctx context.Context, id string) error
UpdateCreditMinByID(ctx context.Context, customerID string, limit int64) (Details, error)
GetDetailsByID(ctx context.Context, customerID string) (Details, error)
UpdateDetailsByID(ctx context.Context, customerID string, details Details) (Details, error)
}
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
func NewService ¶
func NewService(stripeClient *client.API, repository Repository, cfg billing.Config, creditService CreditService) *Service
func (*Service) GetByOrgID ¶
func (*Service) GetDetails ¶ added in v0.60.0
func (*Service) ListPaymentMethods ¶ added in v0.8.13
func (*Service) RegisterToProvider ¶ added in v0.17.0
func (*Service) RegisterToProviderIfRequired ¶ added in v0.17.0
func (*Service) SyncWithProvider ¶ added in v0.9.0
SyncWithProvider syncs the customer state with the billing provider
func (*Service) TriggerSyncByProviderID ¶ added in v0.13.0
func (*Service) UpdateCreditMinByID ¶ added in v0.34.0
Click to show internal directories.
Click to hide internal directories.