go-todos-app/handlers/homeHandler.go
Michael Thomson 3d29dadaf3
All checks were successful
ci/woodpecker/push/build Pipeline was successful
ci/woodpecker/push/dryrun Pipeline was successful
ci/woodpecker/push/publish-tag Pipeline was successful
ci/woodpecker/push/publish-latest Pipeline was successful
update: service, handlers, and db separation
2024-06-14 17:49:56 -04:00

42 lines
785 B
Go

package handlers
import (
"net/http"
"michaelthomson.dev/mthomson/go-todos-app/services"
"michaelthomson.dev/mthomson/go-todos-app/templates/pages"
)
type HomeHandler struct {
ts services.TodoService
}
func NewHomeHandler(ts services.TodoService) HomeHandler {
return HomeHandler{ts: ts}
}
func (h *HomeHandler) Home(w http.ResponseWriter, r *http.Request) {
var err error
todos, err := h.ts.GetTodos()
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
}
err = pages.Home(todos).Render(r.Context(), w)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
}
func (h HomeHandler) Router() http.Handler {
router := http.NewServeMux()
router.HandleFunc("/", h.Home)
return router
}