diff --git a/http/data.go b/http/data.go index 52b3690..b772739 100644 --- a/http/data.go +++ b/http/data.go @@ -4,6 +4,7 @@ import "git.javil.eu/jacob1123/budgeteer" type TemplateData struct { Token budgeteer.Token + Budget *budgeteer.Budget budgetService budgeteer.ModelService } diff --git a/http/http.go b/http/http.go index d8c39d2..aaa4fe0 100644 --- a/http/http.go +++ b/http/http.go @@ -32,6 +32,7 @@ func (h *Handler) Serve() { router.GET("/login", h.login) router.GET("/register", h.register) router.GET("/dashboard", h.dashboard) + router.GET("/budget/:budgetid", h.budget) api := router.Group("/api/v1") { user := api.Group("/user") @@ -50,6 +51,29 @@ func (h *Handler) Serve() { router.Run(":1323") } +func (h *Handler) budget(c *gin.Context) { + token, err := h.verifyLogin(c) + if err != nil { + c.Redirect(http.StatusTemporaryRedirect, "/login") + return + } + + budgetID := c.Param("budgetid") + budget, err := h.Service.Budget(budgetID) + if err != nil { + c.AbortWithError(http.StatusUnauthorized, err) + return + } + + d := TemplateData{ + Token: token, + Budget: budget, + budgetService: h.Service, + } + + c.HTML(http.StatusOK, "budget", d) +} + func (h *Handler) newBudget(c *gin.Context) { token, err := h.verifyLogin(c) if err != nil { diff --git a/templates/budget.html b/templates/budget.html new file mode 100644 index 0000000..eb9ae1a --- /dev/null +++ b/templates/budget.html @@ -0,0 +1,28 @@ +{{define "budget"}} + + +
+