diff --git a/internal/budget/handler.go b/internal/budget/handler.go index c5efedd..d81ac9e 100644 --- a/internal/budget/handler.go +++ b/internal/budget/handler.go @@ -33,7 +33,7 @@ func NewHandler(s Service, r *core.Render) Handler { func (h HandlerImpl) Handle(r *http.ServeMux) { r.Handle("GET /budget", h.handlePage()) - // r.Handle("GET /budget/{id}", h.handleTransactionItemComp()) + r.Handle("GET /budget/{id}", h.handleEdit()) r.Handle("POST /budget/{id}", h.handlePost()) // r.Handle("DELETE /budget/{id}", h.handleDelete()) } @@ -48,17 +48,46 @@ func (h HandlerImpl) handlePage() http.HandlerFunc { return } - // transactions, err := h.s.GetAll(r.Context(), user) - // if err != nil { - // core.HandleError(w, r, err) - // return - // } + budgets, err := h.s.GetAll(r.Context(), user) + if err != nil { + core.HandleError(w, r, err) + return + } - comp := page() + comp := page(budgets) h.r.RenderLayout(r, w, comp, user) } } +func (h HandlerImpl) handleEdit() http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + core.UpdateSpan(r) + + user := core.GetUser(r) + if user == nil { + core.DoRedirect(w, r, "/auth/signin") + return + } + + var ( + // id uuid.UUID + // err error + ) + + idStr := r.PathValue("id") + if idStr != "new" { + // id, err = uuid.Parse(idStr) + // if err != nil { + // core.HandleError(w, r, fmt.Errorf("could not parse Id: %w", core.ErrBadRequest)) + // return + // } + } + + comp := editNew() + h.r.Render(r, w, comp) + } +} + func (h HandlerImpl) handlePost() http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { core.UpdateSpan(r) diff --git a/internal/budget/template.templ b/internal/budget/template.templ index c58ed21..89cb5d4 100644 --- a/internal/budget/template.templ +++ b/internal/budget/template.templ @@ -2,39 +2,75 @@ package budget import "spend-sparrow/internal/template/svg" -templ page() { +templ page(budgets []Budget) { +