Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrAccountNotSetup = errs.Class("payment account is not set up")
ErrAccountNotSetup is an error type which indicates that payment account is not created.
Functions ¶
This section is empty.
Types ¶
type Accounts ¶ added in v0.24.0
type Accounts interface { // Setup creates a payment account for the user. // If account is already set up it will return nil. Setup(ctx context.Context, userID uuid.UUID, email string) error // Balance returns an integer amount in cents that represents the current balance of payment account. Balance(ctx context.Context, userID uuid.UUID) (int64, error) // CreditCards exposes all needed functionality to manage account credit cards. CreditCards() CreditCards // StorjTokens exposes all storj token related functionality. StorjTokens() StorjTokens // Invoices exposes all needed functionality to manage account invoices. Invoices() Invoices }
Accounts exposes all needed functionality to manage payment accounts.
type CreditCard ¶ added in v0.24.0
type CreditCard struct { ID string `json:"id"` ExpMonth int `json:"expMonth"` ExpYear int `json:"expYear"` Brand string `json:"brand"` Last4 string `json:"last4"` IsDefault bool `json:"isDefault"` }
CreditCard holds all public information about credit card.
type CreditCards ¶ added in v0.24.0
type CreditCards interface { // List returns a list of credit cards for a given payment account. List(ctx context.Context, userID uuid.UUID) ([]CreditCard, error) // Add is used to save new credit card and attach it to payment account. Add(ctx context.Context, userID uuid.UUID, cardToken string) error // Remove is used to detach a credit card from payment account. Remove(ctx context.Context, userID uuid.UUID, cardID string) error // MakeDefault makes a credit card default payment method. // this credit card should be attached to account before make it default. MakeDefault(ctx context.Context, userID uuid.UUID, cardID string) error }
CreditCards exposes all needed functionality to manage account credit cards.
type Invoice ¶
type Invoice struct { ID string `json:"id"` Description string `json:"description"` Amount int64 `json:"amount"` Status string `json:"status"` Link string `json:"link"` Start time.Time `json:"start"` End time.Time `json:"end"` }
Invoice holds all public information about invoice.
type Invoices ¶ added in v0.25.0
type Invoices interface { // List returns a list of invoices for a given payment account. List(ctx context.Context, userID uuid.UUID) ([]Invoice, error) }
Invoices exposes all needed functionality to manage account invoices.
type StorjTokens ¶ added in v0.24.0
type StorjTokens interface { // Deposit creates deposit transaction for specified amount. Deposit(ctx context.Context, userID uuid.UUID, amount big.Float) (*Transaction, error) }
StorjTokens defines all payments STORJ token related functionality.
type Transaction ¶ added in v0.24.0
type Transaction struct { ID TransactionID AccountID uuid.UUID Amount big.Float Received big.Float Address string Status TransactionStatus CreatedAt time.Time }
Transaction defines deposit transaction which accepts user funds on a specific wallet address.
type TransactionID ¶ added in v0.24.0
type TransactionID []byte
TransactionID is a transaction ID type.
type TransactionStatus ¶ added in v0.24.0
type TransactionStatus string
TransactionStatus defines allowed statuses for deposit transactions.
const ( // TransactionStatusPaid is a transaction which successfully received required funds. TransactionStatusPaid TransactionStatus = "paid" // TransactionStatusPending is a transaction which accepts funds. TransactionStatusPending TransactionStatus = "pending" // TransactionStatusCancelled is a transaction that is cancelled and no longer accepting new funds. TransactionStatusCancelled TransactionStatus = "cancelled" )