transaction

package
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2024 License: GPL-3.0 Imports: 15 Imported by: 0

Documentation

Overview

Package transaction is a generated GoMock package.

Package transaction is a generated GoMock package.

Index

Constants

View Source
const (
	TypePurchase       = "Purchase"
	TypeSale           = "Sale"
	TypeDividendPayout = "Dividends"
	TypeRoundUp        = "Round up"
	TypeSaveback       = "Saveback"
	TypeDeposit        = "Deposit"
	TypeWithdrawal     = "Withdrawal"

	InstrumentTypeStocks         = "Stocks"
	InstrumentTypeETF            = "ETF"
	InstrumentTypeCryptocurrency = "Cryptocurrency"
	InstrumentTypeLending        = "Lending"
	InstrumentTypeCash           = "Cash"
	InstrumentTypeOther          = "Other"
)

Variables

View Source
var (
	ErrModelBuilderUnsupportedType          = errors.New("unsupported response")
	ErrModelBuilderInsufficientDataResolved = errors.New("insufficient data resolved")
	ErrModelBuilderUnknownType              = errors.New("unknown response")
)
View Source
var ErrNoMatch = errors.New("value did not match the pattern")

Functions

func ExtractInstrumentNameFromIcon

func ExtractInstrumentNameFromIcon(src string) (string, error)

func ParseFloatWithComma

func ParseFloatWithComma(src string, isNegative bool) (float64, error)

func ParseFloatWithPeriod

func ParseFloatWithPeriod(src string) (float64, error)

func ParseNumericValueFromString added in v0.6.0

func ParseNumericValueFromString(src string) (string, error)

Types

type BaseModelBuilder added in v0.6.0

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

func NewBaseModelBuilder added in v0.7.0

func NewBaseModelBuilder(
	response details.Response,
	documentsBuilder document.ModelBuilderInterface,
	logger *log.Logger,
) BaseModelBuilder

func (BaseModelBuilder) BuildDocuments added in v0.6.0

func (b BaseModelBuilder) BuildDocuments(model Model) ([]document.Model, error)

func (BaseModelBuilder) ExtractCommissionAmount added in v0.6.0

func (b BaseModelBuilder) ExtractCommissionAmount() (float64, error)

func (BaseModelBuilder) ExtractInstrumentISIN added in v0.6.0

func (b BaseModelBuilder) ExtractInstrumentISIN() (string, error)

func (BaseModelBuilder) ExtractInstrumentIcon added in v0.6.0

func (b BaseModelBuilder) ExtractInstrumentIcon() (string, error)

func (BaseModelBuilder) ExtractInstrumentName added in v0.6.0

func (b BaseModelBuilder) ExtractInstrumentName() (string, error)

func (BaseModelBuilder) ExtractProfitAndLoss added in v0.6.0

func (b BaseModelBuilder) ExtractProfitAndLoss() (float64, error)

func (BaseModelBuilder) ExtractRateValue added in v0.6.0

func (b BaseModelBuilder) ExtractRateValue() (float64, error)

func (BaseModelBuilder) ExtractSharesAmount added in v0.6.0

func (b BaseModelBuilder) ExtractSharesAmount() (float64, error)

func (BaseModelBuilder) ExtractStatus added in v0.6.0

func (b BaseModelBuilder) ExtractStatus() (string, error)

func (BaseModelBuilder) ExtractTaxAmount added in v0.6.0

func (b BaseModelBuilder) ExtractTaxAmount() (float64, error)

func (BaseModelBuilder) ExtractTimestamp added in v0.6.0

func (b BaseModelBuilder) ExtractTimestamp() (time.Time, error)

func (BaseModelBuilder) ExtractTotalAmount added in v0.6.0

func (b BaseModelBuilder) ExtractTotalAmount() (float64, error)

func (BaseModelBuilder) ExtractYield added in v0.6.0

func (b BaseModelBuilder) ExtractYield() (float64, error)

func (BaseModelBuilder) HandleErr added in v0.10.0

func (b BaseModelBuilder) HandleErr(err error) error

type CSVEntryFactory

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

func NewCSVEntryFactory

func NewCSVEntryFactory(logger *log.Logger) CSVEntryFactory

func (CSVEntryFactory) Make

func (f CSVEntryFactory) Make(transaction Model) (filesystem.CSVEntry, error)

type DepositBuilder added in v0.6.0

type DepositBuilder struct {
	BaseModelBuilder
}

func NewDepositBuilder added in v0.7.0

func NewDepositBuilder(baseBuilder BaseModelBuilder) DepositBuilder

func (DepositBuilder) Build added in v0.6.0

func (b DepositBuilder) Build() (Model, error)

func (DepositBuilder) ExtractTotalAmount added in v0.10.0

func (b DepositBuilder) ExtractTotalAmount() (float64, error)

type DividendPayoutBuilder added in v0.6.0

type DividendPayoutBuilder struct {
	PurchaseBuilder
}

func NewDividendPayoutBuilder added in v0.7.0

func NewDividendPayoutBuilder(purchaseBuilder PurchaseBuilder) DividendPayoutBuilder

func (DividendPayoutBuilder) Build added in v0.6.0

func (b DividendPayoutBuilder) Build() (Model, error)

type Instrument added in v0.4.0

type Instrument struct {
	ISIN string `gorm:"primaryKey"`
	Name string
	Icon string
}

func NewInstrument added in v0.4.0

func NewInstrument(isin, name, icon string) Instrument

func (Instrument) IconURL added in v0.5.0

func (i Instrument) IconURL() string

func (Instrument) Type added in v0.4.0

func (i Instrument) Type() string

type InstrumentRepositoryInterface added in v0.4.0

type InstrumentRepositoryInterface interface {
	database.RepositoryInterface[*Instrument]
}

type MockInstrumentRepositoryInterface added in v0.10.0

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

MockInstrumentRepositoryInterface is a mock of InstrumentRepositoryInterface interface.

func NewMockInstrumentRepositoryInterface added in v0.10.0

func NewMockInstrumentRepositoryInterface(ctrl *gomock.Controller) *MockInstrumentRepositoryInterface

NewMockInstrumentRepositoryInterface creates a new mock instance.

func (*MockInstrumentRepositoryInterface) Create added in v0.10.0

Create mocks base method.

func (*MockInstrumentRepositoryInterface) EXPECT added in v0.10.0

EXPECT returns an object that allows the caller to indicate expected use.

type MockInstrumentRepositoryInterfaceMockRecorder added in v0.10.0

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

MockInstrumentRepositoryInterfaceMockRecorder is the mock recorder for MockInstrumentRepositoryInterface.

func (*MockInstrumentRepositoryInterfaceMockRecorder) Create added in v0.10.0

Create indicates an expected call of Create.

type MockProcessorInterface added in v0.9.0

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

MockProcessorInterface is a mock of ProcessorInterface interface.

func NewMockProcessorInterface added in v0.9.0

func NewMockProcessorInterface(ctrl *gomock.Controller) *MockProcessorInterface

NewMockProcessorInterface creates a new mock instance.

func (*MockProcessorInterface) EXPECT added in v0.9.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockProcessorInterface) Process added in v0.9.0

func (m *MockProcessorInterface) Process(eventType transactions.EventType, response details.Response) error

Process mocks base method.

type MockProcessorInterfaceMockRecorder added in v0.9.0

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

MockProcessorInterfaceMockRecorder is the mock recorder for MockProcessorInterface.

func (*MockProcessorInterfaceMockRecorder) Process added in v0.9.0

func (mr *MockProcessorInterfaceMockRecorder) Process(eventType, response any) *gomock.Call

Process indicates an expected call of Process.

type MockRepositoryInterface added in v0.10.0

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

MockRepositoryInterface is a mock of RepositoryInterface interface.

func NewMockRepositoryInterface added in v0.10.0

func NewMockRepositoryInterface(ctrl *gomock.Controller) *MockRepositoryInterface

NewMockRepositoryInterface creates a new mock instance.

func (*MockRepositoryInterface) Create added in v0.10.0

func (m *MockRepositoryInterface) Create(model *Model) error

Create mocks base method.

func (*MockRepositoryInterface) EXPECT added in v0.10.0

EXPECT returns an object that allows the caller to indicate expected use.

type MockRepositoryInterfaceMockRecorder added in v0.10.0

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

MockRepositoryInterfaceMockRecorder is the mock recorder for MockRepositoryInterface.

func (*MockRepositoryInterfaceMockRecorder) Create added in v0.10.0

Create indicates an expected call of Create.

type Model added in v0.4.0

type Model struct {
	UUID string `gorm:"primaryKey"`

	InstrumentISIN *string
	Instrument     Instrument
	Documents      []document.Model `gorm:"-"`

	Type       string    `gorm:"index"`
	Timestamp  time.Time `gorm:"index"`
	Status     string
	Yield      float64
	Profit     float64
	Shares     float64
	Rate       float64
	Commission float64
	Total      float64
	TaxAmount  float64
	CreatedAt  time.Time `gorm:"index"`
	UpdatedAt  time.Time `gorm:"index"`
}

func NewTransaction added in v0.4.0

func NewTransaction(
	uuid, transactionType, status string,
	yield, profit, shares, rate, commission, total, tax float64,
	timestamp time.Time,
	instrument Instrument,
	documents []document.Model,
) Model

func (Model) TableName added in v0.4.0

func (Model) TableName() string

type ModelBuilderFactory added in v0.6.0

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

func NewModelBuilderFactory added in v0.6.0

func NewModelBuilderFactory(
	resolver details.TypeResolverInterface,
	documentsBuilder document.ModelBuilderInterface,
	logger *log.Logger,
) ModelBuilderFactory

func (ModelBuilderFactory) Create added in v0.6.0

type ModelBuilderFactoryInterface added in v0.6.0

type ModelBuilderFactoryInterface interface {
	Create(eventType transactions.EventType, response details.Response) (ModelBuilderInterface, error)
}

type ModelBuilderInterface added in v0.6.0

type ModelBuilderInterface interface {
	Build() (Model, error)
}

type Processor

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

func NewProcessor

func NewProcessor(
	builderFactory ModelBuilderFactoryInterface,
	transactionRepo RepositoryInterface,
	factory CSVEntryFactory,
	csvReader filesystem.CSVReaderInterface,
	csvWriter filesystem.CSVWriterInterface,
	documentDownloader document.DownloaderInterface,
	logger *log.Logger,
) Processor

func (Processor) Process

func (p Processor) Process(eventType transactions.EventType, response details.Response) error

type ProcessorInterface added in v0.9.0

type ProcessorInterface interface {
	Process(eventType transactions.EventType, response details.Response) error
}

type PurchaseBuilder added in v0.6.0

type PurchaseBuilder struct {
	BaseModelBuilder
}

func NewPurchaseBuilder added in v0.7.0

func NewPurchaseBuilder(baseBuilder BaseModelBuilder) PurchaseBuilder

func (PurchaseBuilder) Build added in v0.6.0

func (b PurchaseBuilder) Build() (Model, error)

type RepositoryInterface added in v0.4.0

type RepositoryInterface interface {
	database.RepositoryInterface[*Model]
}

type RoundUpBuilder added in v0.6.0

type RoundUpBuilder struct {
	PurchaseBuilder
}

func NewRoundUpBuilder added in v0.7.0

func NewRoundUpBuilder(purchaseBuilder PurchaseBuilder) RoundUpBuilder

func (RoundUpBuilder) Build added in v0.6.0

func (b RoundUpBuilder) Build() (Model, error)

type SaleBuilder added in v0.6.0

type SaleBuilder struct {
	PurchaseBuilder
}

func NewSaleBuilder added in v0.7.0

func NewSaleBuilder(purchaseBuilder PurchaseBuilder) SaleBuilder

func (SaleBuilder) Build added in v0.6.0

func (b SaleBuilder) Build() (Model, error)

type SavebackBuilder added in v0.6.0

type SavebackBuilder struct {
	PurchaseBuilder
}

func NewSavebackBuilder added in v0.7.0

func NewSavebackBuilder(purchaseBuilder PurchaseBuilder) SavebackBuilder

func (SavebackBuilder) Build added in v0.6.0

func (b SavebackBuilder) Build() (Model, error)

type WithdrawBuilder added in v0.7.0

type WithdrawBuilder struct {
	DepositBuilder
}

func NewWithdrawBuilder added in v0.7.0

func NewWithdrawBuilder(depositBuilder DepositBuilder) WithdrawBuilder

func (WithdrawBuilder) Build added in v0.7.0

func (b WithdrawBuilder) Build() (Model, error)

Jump to

Keyboard shortcuts

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