package server import ( "net/http" "git.javil.eu/jacob1123/budgeteer/postgres" "github.com/gin-gonic/gin" "github.com/google/uuid" ) func (h *Handler) transactionsForAccount(c *gin.Context) { accountID := c.Param("accountid") accountUUID, err := uuid.Parse(accountID) if err != nil { c.AbortWithError(http.StatusBadRequest, err) return } account, err := h.Service.GetAccount(c.Request.Context(), accountUUID) if err != nil { c.AbortWithError(http.StatusNotFound, err) return } transactions, err := h.Service.GetTransactionsForAccount(c.Request.Context(), accountUUID) if err != nil { c.AbortWithError(http.StatusNotFound, err) return } c.JSON(http.StatusOK, TransactionsResponse{account, transactions}) } type TransactionsResponse struct { Account postgres.Account Transactions []postgres.DisplayTransaction } type EditAccountRequest struct { Name string `json:"name"` OnBudget bool `json:"onBudget"` IsOpen bool `json:"isOpen"` } func (h *Handler) editAccount(c *gin.Context) { accountID := c.Param("accountid") accountUUID, err := uuid.Parse(accountID) if err != nil { c.AbortWithError(http.StatusBadRequest, err) return } var request EditAccountRequest err = c.BindJSON(&request) if err != nil { c.AbortWithError(http.StatusBadRequest, err) return } updateParams := postgres.UpdateAccountParams{ Name: request.Name, OnBudget: request.OnBudget, IsOpen: request.IsOpen, ID: accountUUID, } account, err := h.Service.UpdateAccount(c.Request.Context(), updateParams) if err != nil { c.AbortWithError(http.StatusNotFound, err) return } h.returnBudgetingData(c, account.BudgetID) }