35 lines
603 B
Go
35 lines
603 B
Go
package invoice
|
|
|
|
import (
|
|
"io"
|
|
"log/slog"
|
|
|
|
"code.gitea.io/sdk/gitea"
|
|
)
|
|
|
|
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)
|
|
}
|