processor

package
v0.0.0-...-d559a05 Latest Latest
Warning

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

Go to latest
Published: Jun 3, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Firefly

type Firefly interface {
	ListAccounts(ctx context.Context) ([]*firefly.Account, error)
	MapTransactions(
		ctx context.Context,
		transactions []*database.Transaction,
	) ([]*firefly.MappedTransaction, error)
	CreateTransactions(ctx context.Context, tx *firefly.Transaction) (*firefly.Transaction, error)
}

type Message

type Message struct {
	ID                string
	Date              time.Time
	OriginalDate      time.Time
	ChatID            int64
	Content           string
	ForwardedFrom     string
	MessageID         int64
	TransactionSource database.TransactionSource
	FileID            string
}

type NotificationSvc

type NotificationSvc interface {
	React(
		ctx context.Context,
		chatID int64,
		messageID int64,
		reaction string,
	) error

	SendMessage(
		ctx context.Context,
		chatID int64,
		text string,
	) error

	GetFile(ctx context.Context, fileID string) ([]byte, error)
}

type Parser

type Parser interface {
	ParseMessages(
		ctx context.Context,
		raw []*parser2.Record,
	) ([]*database.Transaction, error)
	Type() database.TransactionSource

	SplitExcel(
		_ context.Context,
		data []byte,
	) ([][]byte, error)
}

type Processor

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

func NewProcessor

func NewProcessor(
	repo Repo,
	parsers []Parser,
	notificationSvc NotificationSvc,
	fireflySvc Firefly,
) *Processor

func (*Processor) AddMessage

func (p *Processor) AddMessage(
	ctx context.Context,
	message Message,
) error

func (*Processor) Clear

func (p *Processor) Clear(ctx context.Context, message Message) error

func (*Processor) Commit

func (p *Processor) Commit(ctx context.Context, message Message) error

func (*Processor) CommitTransaction

func (p *Processor) CommitTransaction(
	ctx context.Context,
	transaction *firefly.MappedTransaction,
	requestMessage Message,
)

func (*Processor) DryRun

func (p *Processor) DryRun(ctx context.Context, message Message) error

func (*Processor) ProcessLatestMessages

func (p *Processor) ProcessLatestMessages(
	ctx context.Context,
	transactionSource database.TransactionSource,
) ([]*firefly.MappedTransaction, []error, error)

func (*Processor) ProcessMessage

func (p *Processor) ProcessMessage(
	ctx context.Context,
	message Message,
) error

func (*Processor) SendErrorMessage

func (p *Processor) SendErrorMessage(ctx context.Context, err error, message Message)

type Repo

type Repo interface {
	AddMessage(ctx context.Context, message database.Message) error
	GetLatestMessages(ctx context.Context, source database.TransactionSource) ([]*database.Message, error)
	Clear(ctx context.Context, transactionSource database.TransactionSource) error
	UpdateMessage(ctx context.Context, message *database.Message) error
}

Jump to

Keyboard shortcuts

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