Files
accounting/pkg/invoice/resource.go
schreifuchs cfbb475a42
Some checks failed
Go / build (push) Failing after 1m16s
feat: more options
2025-11-04 20:16:44 +01:00

54 lines
1.0 KiB
Go

package invoice
import (
"io"
"log/slog"
"time"
"code.gitea.io/sdk/gitea"
)
var DefaultOptions = Options{
Mindur: time.Minute * 15,
Since: time.Now().AddDate(0, -1, 0),
Before: time.Now(),
IssueState: gitea.StateClosed,
IssueFilter: func(i *gitea.Issue) bool {
return i.Closed != nil && i.Closed.After(time.Now().AddDate(0, -1, 0))
},
}
type Options struct {
Mindur time.Duration
Since time.Time
Before time.Time
IssueState gitea.StateType
IssueFilter func(i *gitea.Issue) bool
}
type Repo struct {
Owner string `json:"owner"`
Repo string `json:"repo"`
}
type Service struct {
log *slog.Logger
gitea giteaClient
pdf pdfGenerator
}
func New(log *slog.Logger, gitea giteaClient, pdf pdfGenerator) *Service {
return &Service{
log: log,
gitea: gitea,
pdf: pdf,
}
}
type giteaClient interface {
ListRepoIssues(owner, repo string, opt gitea.ListIssueOption) ([]*gitea.Issue, *gitea.Response, error)
}
type pdfGenerator interface {
HtmlToPdf(html string) (pdf io.ReadCloser, err error)
}