From 2dd4cf35aab8324608a83d337459fd8354521b92 Mon Sep 17 00:00:00 2001 From: "Gabriel A. Giovanini" Date: Mon, 27 May 2024 22:36:50 +0200 Subject: feat: Wraps handler into its own package Although this creates more complex folder structure will allow in the feature for a easier testing of those given handlers. --- pkg/handler/git/handler.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 pkg/handler/git/handler.go (limited to 'pkg/handler/git') diff --git a/pkg/handler/git/handler.go b/pkg/handler/git/handler.go new file mode 100644 index 0000000..236ac41 --- /dev/null +++ b/pkg/handler/git/handler.go @@ -0,0 +1,36 @@ +package git + +import ( + "log/slog" + "net/http" + + "git.gabrielgio.me/cerrado/pkg/service" + "git.gabrielgio.me/cerrado/templates" +) + +type ( + GitHandler struct { + gitService gitService + } + + gitService interface { + ListRepositories() ([]*service.Repository, error) + } +) + +func NewGitHandler(gitService gitService) *GitHandler { + return &GitHandler{ + gitService: gitService, + } +} + +func (g *GitHandler) List(w http.ResponseWriter, _ *http.Request) { + repos, err := g.gitService.ListRepositories() + if err != nil { + slog.Error("Error listing repo", "error", err) + return + } + + gitList := &templates.GitListPage{repos} + templates.WritePageTemplate(w, gitList) +} -- cgit v1.2.3