37 lines
847 B
Go
37 lines
847 B
Go
package api
|
|
|
|
import (
|
|
"log/slog"
|
|
"net/http"
|
|
|
|
"code.gitea.io/sdk/gitea"
|
|
"git.schreifuchs.ch/lou-taylor/accounting/internal/api/httpinvoce"
|
|
"git.schreifuchs.ch/lou-taylor/accounting/internal/config"
|
|
"git.schreifuchs.ch/lou-taylor/accounting/internal/email"
|
|
"git.schreifuchs.ch/lou-taylor/accounting/pdf"
|
|
"git.schreifuchs.ch/lou-taylor/accounting/pkg/invoice"
|
|
)
|
|
|
|
func RegisterRoutes(log *slog.Logger, mux *http.ServeMux, cfg *config.Config) error {
|
|
gotenberg, err := pdf.New(cfg.PDF.Hostname)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
giteaC, err := gitea.NewClient(
|
|
cfg.Gitea.URL,
|
|
gitea.SetToken(cfg.Gitea.Token),
|
|
)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
invoicer := invoice.New(log, giteaC, gotenberg)
|
|
mailer, err := email.New(cfg.Email)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
httpinvoce.New(log, invoicer, mailer).RegisterRoutes(mux)
|
|
return nil
|
|
}
|