paymentservice

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	NoSuchDebitor404Error = errors.New("debitor id not found")
	DownstreamError       = errors.New("downstream unavailable - see log for details")
)

Functions

func Create

func Create() (err error)

Types

type Amount

type Amount struct {
	Currency  string  `json:"currency"`
	GrossCent int64   `json:"gross_cent"`
	VatRate   float64 `json:"vat_rate"`
}

type Impl

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

func (Impl) AddTransaction

func (i Impl) AddTransaction(ctx context.Context, transaction Transaction) error

func (Impl) GetTransactions

func (i Impl) GetTransactions(ctx context.Context, debitorId uint) ([]Transaction, error)

type Mock

type Mock interface {
	PaymentService

	InjectTransaction(ctx context.Context, transaction Transaction) error
	Reset()
	Recording() []Transaction
	SimulateGetError(err error)
	SimulateAddError(err error)
}

func CreateMock

func CreateMock() Mock

type MockImpl

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

func (*MockImpl) AddTransaction

func (m *MockImpl) AddTransaction(ctx context.Context, transaction Transaction) error

func (*MockImpl) GetTransactions

func (m *MockImpl) GetTransactions(ctx context.Context, debitorId uint) ([]Transaction, error)

func (*MockImpl) InjectTransaction

func (m *MockImpl) InjectTransaction(_ context.Context, transaction Transaction) error

func (*MockImpl) Recording

func (m *MockImpl) Recording() []Transaction

func (*MockImpl) Reset

func (m *MockImpl) Reset()

func (*MockImpl) SimulateAddError

func (m *MockImpl) SimulateAddError(err error)

func (*MockImpl) SimulateGetError

func (m *MockImpl) SimulateGetError(err error)

type PaymentMethod

type PaymentMethod string
const (
	Credit   PaymentMethod = "credit"
	Paypal   PaymentMethod = "paypal"
	Cash     PaymentMethod = "cash"
	Transfer PaymentMethod = "transfer"
	Internal PaymentMethod = "internal"
	Gift     PaymentMethod = "gift"
)

type PaymentService

type PaymentService interface {
	GetTransactions(ctx context.Context, debitorId uint) ([]Transaction, error)
	AddTransaction(ctx context.Context, transaction Transaction) error
}

func Get

func Get() PaymentService

type StatusHistory

type StatusHistory struct {
	Status     TransactionStatus `json:"status"`
	Comment    string            `json:"comment"`
	ChangedBy  string            `json:"changed_by"`
	ChangeDate time.Time         `json:"change_date"`
}

type Transaction

type Transaction struct {
	DebitorID             uint              `json:"debitor_id"`
	TransactionIdentifier string            `json:"transaction_identifier"`
	TransactionType       TransactionType   `json:"transaction_type"`
	Method                PaymentMethod     `json:"method"`
	Amount                Amount            `json:"amount"`
	Comment               string            `json:"comment"`
	Status                TransactionStatus `json:"status"`
	EffectiveDate         string            `json:"effective_date"`
	DueDate               string            `json:"due_date"`
	CreationDate          time.Time         `json:"creation_date"`
	StatusHistory         []StatusHistory   `json:"status_history"`
}

type TransactionResponse

type TransactionResponse struct {
	Payload []Transaction
}

type TransactionStatus

type TransactionStatus string
const (
	Tentative TransactionStatus = "tentative"
	Pending   TransactionStatus = "pending"
	Valid     TransactionStatus = "valid"
	Deleted   TransactionStatus = "deleted"
)

type TransactionType

type TransactionType string
const (
	Due     TransactionType = "due"
	Payment TransactionType = "payment"
)

Jump to

Keyboard shortcuts

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