Documentation
¶
Overview ¶
Package fireflyiii implements the Firefly III adapter for the finance capability.
Index ¶
- Constants
- func CatalogSpec() capability.Spec
- func Register(app string, svc Service) error
- type AccountListQuery
- type Adapter
- func (a *Adapter) About(ctx context.Context) (*capability.FinanceAbout, error)
- func (a *Adapter) CreateTransaction(ctx context.Context, in CreateTransactionInput) (*capability.Transaction, error)
- func (a *Adapter) CurrentUser(ctx context.Context) (*capability.FinanceUser, error)
- func (a *Adapter) DeleteTransaction(ctx context.Context, id string) error
- func (a *Adapter) GetTransaction(ctx context.Context, id string) (*capability.Transaction, error)
- func (a *Adapter) HealthCheck(ctx context.Context) (bool, error)
- func (a *Adapter) ListAccounts(ctx context.Context, q AccountListQuery) (*capability.ListResult[capability.FinanceAccount], error)
- func (a *Adapter) ListBills(ctx context.Context, q ResourceListQuery) (*capability.ListResult[capability.FinanceBill], error)
- func (a *Adapter) ListBudgets(ctx context.Context, q ResourceListQuery) (*capability.ListResult[capability.FinanceBudget], error)
- func (a *Adapter) ListCategories(ctx context.Context, q ResourceListQuery) (*capability.ListResult[capability.FinanceCategory], error)
- func (a *Adapter) ListTags(ctx context.Context, q ResourceListQuery) (*capability.ListResult[capability.FinanceTag], error)
- func (a *Adapter) ListTransactions(ctx context.Context, q TransactionListQuery) (*capability.ListResult[capability.Transaction], error)
- func (a *Adapter) SetCursorSecret(secret []byte)
- func (a *Adapter) UpdateTransaction(ctx context.Context, in UpdateTransactionInput) (*capability.Transaction, error)
- type CreateTransactionInput
- type ResourceListQuery
- type Service
- type TransactionListQuery
- type UpdateTransactionInput
Constants ¶
const ( OpCreateTransaction = "create_transaction" OpListTransactions = "list_transactions" OpGetTransaction = "get_transaction" OpUpdateTransaction = "update_transaction" OpDeleteTransaction = "delete_transaction" OpListAccounts = "list_accounts" OpListCategories = "list_categories" OpListBudgets = "list_budgets" OpListBills = "list_bills" OpListTags = "list_tags" OpAbout = "about" OpCurrentUser = "current_user" OpHealth = "health" )
Variables ¶
This section is empty.
Functions ¶
func CatalogSpec ¶ added in v0.98.2
func CatalogSpec() capability.Spec
CatalogSpec returns capability metadata for documentation (handlers may close over a nil service and must not be invoked).
Types ¶
type AccountListQuery ¶
type AccountListQuery struct {
Page capability.PageRequest
Type string
}
AccountListQuery holds filters and pagination for listing accounts.
type Adapter ¶
type Adapter struct {
// contains filtered or unexported fields
}
Adapter implements Service using the Firefly III provider client.
func (*Adapter) About ¶
func (a *Adapter) About(ctx context.Context) (*capability.FinanceAbout, error)
About returns Firefly III instance metadata.
func (*Adapter) CreateTransaction ¶
func (a *Adapter) CreateTransaction(ctx context.Context, in CreateTransactionInput) (*capability.Transaction, error)
CreateTransaction creates a new finance transaction. Source and destination must each be identified by id and/or name. ApplyRules and FireWebhooks are enabled so Firefly processes rules and notifies listeners.
func (*Adapter) CurrentUser ¶
func (a *Adapter) CurrentUser(ctx context.Context) (*capability.FinanceUser, error)
CurrentUser returns the authenticated Firefly III user.
func (*Adapter) DeleteTransaction ¶
DeleteTransaction deletes a transaction group by id.
func (*Adapter) GetTransaction ¶
func (a *Adapter) GetTransaction(ctx context.Context, id string) (*capability.Transaction, error)
GetTransaction returns one transaction group by id.
func (*Adapter) HealthCheck ¶
HealthCheck reports whether the Firefly III backend is reachable.
func (*Adapter) ListAccounts ¶
func (a *Adapter) ListAccounts(ctx context.Context, q AccountListQuery) (*capability.ListResult[capability.FinanceAccount], error)
ListAccounts lists accounts with optional type filter.
func (*Adapter) ListBills ¶
func (a *Adapter) ListBills(ctx context.Context, q ResourceListQuery) (*capability.ListResult[capability.FinanceBill], error)
ListBills lists bills.
func (*Adapter) ListBudgets ¶
func (a *Adapter) ListBudgets(ctx context.Context, q ResourceListQuery) (*capability.ListResult[capability.FinanceBudget], error)
ListBudgets lists budgets.
func (*Adapter) ListCategories ¶
func (a *Adapter) ListCategories(ctx context.Context, q ResourceListQuery) (*capability.ListResult[capability.FinanceCategory], error)
ListCategories lists categories.
func (*Adapter) ListTags ¶
func (a *Adapter) ListTags(ctx context.Context, q ResourceListQuery) (*capability.ListResult[capability.FinanceTag], error)
ListTags lists tags.
func (*Adapter) ListTransactions ¶
func (a *Adapter) ListTransactions(ctx context.Context, q TransactionListQuery) (*capability.ListResult[capability.Transaction], error)
ListTransactions lists transaction groups with filters and opaque cursor pagination.
func (*Adapter) SetCursorSecret ¶
SetCursorSecret overrides the HMAC secret used for opaque list cursors.
func (*Adapter) UpdateTransaction ¶
func (a *Adapter) UpdateTransaction(ctx context.Context, in UpdateTransactionInput) (*capability.Transaction, error)
UpdateTransaction applies a partial update to the first split of a transaction group. All existing splits are sent back on PUT so Firefly does not drop non-first splits.
type CreateTransactionInput ¶
type CreateTransactionInput struct {
Type string
Date string
Amount string
Description string
SourceID string
SourceName string
DestinationID string
DestinationName string
CategoryName string
BudgetID string
BudgetName string
BillID string
BillName string
Notes string
Tags []string
}
CreateTransactionInput holds parameters for creating a finance transaction.
type ResourceListQuery ¶
type ResourceListQuery struct {
Page capability.PageRequest
}
ResourceListQuery holds pagination for simple resource lists.
type Service ¶
type Service interface {
CreateTransaction(ctx context.Context, in CreateTransactionInput) (*capability.Transaction, error)
ListTransactions(ctx context.Context, q TransactionListQuery) (*capability.ListResult[capability.Transaction], error)
GetTransaction(ctx context.Context, id string) (*capability.Transaction, error)
UpdateTransaction(ctx context.Context, in UpdateTransactionInput) (*capability.Transaction, error)
DeleteTransaction(ctx context.Context, id string) error
ListAccounts(ctx context.Context, q AccountListQuery) (*capability.ListResult[capability.FinanceAccount], error)
ListCategories(ctx context.Context, q ResourceListQuery) (*capability.ListResult[capability.FinanceCategory], error)
ListBudgets(ctx context.Context, q ResourceListQuery) (*capability.ListResult[capability.FinanceBudget], error)
ListBills(ctx context.Context, q ResourceListQuery) (*capability.ListResult[capability.FinanceBill], error)
ListTags(ctx context.Context, q ResourceListQuery) (*capability.ListResult[capability.FinanceTag], error)
About(ctx context.Context) (*capability.FinanceAbout, error)
CurrentUser(ctx context.Context) (*capability.FinanceUser, error)
HealthCheck(ctx context.Context) (bool, error)
}
Service defines the fireflyiii finance capability contract.
func New ¶
func New() Service
New creates an Adapter using the default provider client (reads config from YAML). Returns nil when the provider is not configured.
func NewWithClient ¶
func NewWithClient(c client) Service
NewWithClient creates an Adapter with a specific client, useful for testing.
type TransactionListQuery ¶
type TransactionListQuery struct {
Page capability.PageRequest
Type string
Start string
End string
AccountID string
}
TransactionListQuery holds filters and pagination for listing transactions.
type UpdateTransactionInput ¶
type UpdateTransactionInput struct {
ID string
Type *string
Date *string
Amount *string
Description *string
SourceID *string
SourceName *string
DestinationID *string
DestinationName *string
CategoryName *string
BudgetID *string
BudgetName *string
BillID *string
BillName *string
Notes *string
Tags *[]string
}
UpdateTransactionInput holds partial updates for a transaction group. Pointer fields mean "set this value"; nil means leave unchanged.