diff --git a/http/budget.go b/http/budget.go
new file mode 100644
index 0000000..d0731b1
--- /dev/null
+++ b/http/budget.go
@@ -0,0 +1,52 @@
+package http
+
+import (
+ "context"
+ "net/http"
+
+ "git.javil.eu/jacob1123/budgeteer"
+ "git.javil.eu/jacob1123/budgeteer/postgres"
+ "github.com/gin-gonic/gin"
+ "github.com/google/uuid"
+)
+
+type BudgetData struct {
+ Token budgeteer.Token
+ Budget *postgres.Budget
+ Transactions []postgres.Transaction
+}
+
+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")
+ budgetUUID, err := uuid.Parse(budgetID)
+ if err != nil {
+ c.Redirect(http.StatusTemporaryRedirect, "/login")
+ return
+ }
+
+ budget, err := h.Service.DB.GetBudget(context.Background(), budgetUUID)
+ if err != nil {
+ c.AbortWithError(http.StatusNotFound, err)
+ return
+ }
+
+ transactions, err := h.Service.DB.GetTransactionsForBudget(context.Background(), budgetUUID)
+ if err != nil {
+ c.AbortWithError(http.StatusInternalServerError, err)
+ return
+ }
+
+ d := BudgetData{
+ Token: token,
+ Budget: &budget,
+ Transactions: transactions,
+ }
+
+ c.HTML(http.StatusOK, "budget", d)
+}
diff --git a/http/dashboard.go b/http/dashboard.go
new file mode 100644
index 0000000..06028fe
--- /dev/null
+++ b/http/dashboard.go
@@ -0,0 +1,34 @@
+package http
+
+import (
+ "net/http"
+
+ "git.javil.eu/jacob1123/budgeteer"
+ "git.javil.eu/jacob1123/budgeteer/postgres"
+ "github.com/gin-gonic/gin"
+)
+
+func (h *Handler) dashboard(c *gin.Context) {
+ token, err := h.verifyLogin(c)
+ if err != nil {
+ c.Redirect(http.StatusTemporaryRedirect, "/login")
+ return
+ }
+
+ userID := token.GetID()
+ budgets, err := h.Service.BudgetsForUser(userID)
+ if err != nil {
+ return
+ }
+
+ d := DashboardData{
+ Token: token,
+ Budgets: budgets,
+ }
+ c.HTML(http.StatusOK, "dashboard", d)
+}
+
+type DashboardData struct {
+ Token budgeteer.Token
+ Budgets []postgres.Budget
+}
diff --git a/http/data.go b/http/data.go
deleted file mode 100644
index 9b0a09b..0000000
--- a/http/data.go
+++ /dev/null
@@ -1,22 +0,0 @@
-package http
-
-import (
- "git.javil.eu/jacob1123/budgeteer"
- "git.javil.eu/jacob1123/budgeteer/postgres"
-)
-
-type TemplateData struct {
- Token budgeteer.Token
- Budget *postgres.Budget
- budgetService *postgres.Repository
-}
-
-func (d TemplateData) GetBudgets() []postgres.Budget {
- userID := d.Token.GetID()
- budgets, err := d.budgetService.BudgetsForUser(userID)
- if err != nil {
- return nil
- }
-
- return budgets
-}
diff --git a/http/http.go b/http/http.go
index 1424cad..2ce61b3 100644
--- a/http/http.go
+++ b/http/http.go
@@ -14,7 +14,6 @@ import (
"git.javil.eu/jacob1123/budgeteer/web"
"github.com/gin-gonic/gin"
- "github.com/google/uuid"
)
// Handler handles incoming requests
@@ -65,35 +64,6 @@ 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")
- budgetUUID, err := uuid.Parse(budgetID)
- if err != nil {
- c.Redirect(http.StatusTemporaryRedirect, "/login")
- return
- }
-
- budget, err := h.Service.DB.GetBudget(context.Background(), budgetUUID)
- 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 {
@@ -114,20 +84,6 @@ func (h *Handler) newBudget(c *gin.Context) {
}
}
-func (h *Handler) dashboard(c *gin.Context) {
- token, err := h.verifyLogin(c)
- if err != nil {
- c.Redirect(http.StatusTemporaryRedirect, "/login")
- return
- }
-
- d := TemplateData{
- Token: token,
- budgetService: h.Service,
- }
- c.HTML(http.StatusOK, "dashboard", d)
-}
-
func (h *Handler) verifyLogin(c *gin.Context) (budgeteer.Token, error) {
tokenString, err := c.Cookie(authCookie)
if err != nil {
diff --git a/web/budget.html b/web/budget.html
index 3305cd4..462fe0f 100644
--- a/web/budget.html
+++ b/web/budget.html
@@ -8,20 +8,23 @@
- Budgeteer - {{.Token.GetName}} - Budget-View
+ Budgeteer - {{.Token.GetName}} - {{.Budget.Name}}
-
- {{range .GetBudgets}}
-
+
+
+ {{range .Transactions}}
+
+ {{.Date}} |
+
+ {{.Memo.String}}
+ |
+ {{.Amount}} |
+
{{end}}
-
-
+
{{template "budget-new"}}