From 38dfa540b405883f0bfa219b9cd5da97d4c3dcb4 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Tue, 15 Feb 2022 11:52:06 +0000 Subject: [PATCH] Fix issues from golangci --- http/http.go | 9 +++---- http/session.go | 20 +++++++++++--- http/transaction.go | 9 ++++--- http/util.go | 56 --------------------------------------- postgres/budgetservice.go | 9 ++++++- 5 files changed, 33 insertions(+), 70 deletions(-) delete mode 100644 http/util.go diff --git a/http/http.go b/http/http.go index ade5c22..ccb53a3 100644 --- a/http/http.go +++ b/http/http.go @@ -24,15 +24,14 @@ type Handler struct { StaticFS http.FileSystem } -const ( - expiration = 72 -) - // Serve starts the http server func (h *Handler) Serve() { router := gin.Default() h.LoadRoutes(router) - router.Run(":1323") + err := router.Run(":1323") + if err != nil { + panic(err) + } } // LoadRoutes initializes all the routes diff --git a/http/session.go b/http/session.go index a76298a..9bd0f75 100644 --- a/http/session.go +++ b/http/session.go @@ -8,6 +8,7 @@ import ( "git.javil.eu/jacob1123/budgeteer" "git.javil.eu/jacob1123/budgeteer/postgres" "github.com/gin-gonic/gin" + "github.com/google/uuid" ) func (h *Handler) verifyLogin(c *gin.Context) (budgeteer.Token, error) { @@ -77,7 +78,7 @@ func (h *Handler) loginPost(c *gin.Context) { c.AbortWithError(http.StatusUnauthorized, err) } - go h.Service.UpdateLastLogin(context.Background(), user.ID) + go h.UpdateLastLogin(user.ID) budgets, err := h.Service.GetBudgetsForUser(c.Request.Context(), user.ID) if err != nil { @@ -101,14 +102,18 @@ type registerInformation struct { func (h *Handler) registerPost(c *gin.Context) { var register registerInformation - c.BindJSON(®ister) + err := c.BindJSON(®ister) + if err != nil { + c.AbortWithError(http.StatusBadRequest, fmt.Errorf("parse body: %w", err)) + return + } if register.Email == "" || register.Password == "" || register.Name == "" { c.AbortWithError(http.StatusBadRequest, fmt.Errorf("e-mail, password and name are required")) return } - _, err := h.Service.GetUserByUsername(c.Request.Context(), register.Email) + _, err = h.Service.GetUserByUsername(c.Request.Context(), register.Email) if err == nil { c.AbortWithError(http.StatusBadRequest, fmt.Errorf("email is already taken")) return @@ -135,7 +140,7 @@ func (h *Handler) registerPost(c *gin.Context) { c.AbortWithError(http.StatusUnauthorized, err) } - go h.Service.UpdateLastLogin(context.Background(), user.ID) + go h.UpdateLastLogin(user.ID) budgets, err := h.Service.GetBudgetsForUser(c.Request.Context(), user.ID) if err != nil { @@ -144,3 +149,10 @@ func (h *Handler) registerPost(c *gin.Context) { c.JSON(http.StatusOK, LoginResponse{t, user, budgets}) } + +func (h *Handler) UpdateLastLogin(userID uuid.UUID) { + _, err := h.Service.UpdateLastLogin(context.Background(), userID) + if err != nil { + fmt.Printf("Error updating last login: %s", err) + } +} diff --git a/http/transaction.go b/http/transaction.go index a565275..306fe01 100644 --- a/http/transaction.go +++ b/http/transaction.go @@ -31,14 +31,17 @@ func (h *Handler) newTransaction(c *gin.Context) { var payload NewTransactionPayload err := c.BindJSON(&payload) if err != nil { - c.AbortWithError(http.StatusInternalServerError, err) + c.AbortWithError(http.StatusBadRequest, err) return } fmt.Printf("%v\n", payload) amount := postgres.Numeric{} - amount.Set(payload.Amount) + err = amount.Set(payload.Amount) + if err != nil { + c.AbortWithError(http.StatusBadRequest, fmt.Errorf("amount: %w", err)) + } /*transactionUUID, err := getNullUUIDFromParam(c, "transactionid") if err != nil { @@ -60,8 +63,6 @@ func (h *Handler) newTransaction(c *gin.Context) { if err != nil { c.AbortWithError(http.StatusInternalServerError, fmt.Errorf("create transaction: %w", err)) } - - return // } /* _, delete := c.GetPostForm("delete") diff --git a/http/util.go b/http/util.go deleted file mode 100644 index 7c2031e..0000000 --- a/http/util.go +++ /dev/null @@ -1,56 +0,0 @@ -package http - -import ( - "fmt" - - "github.com/gin-gonic/gin" - "github.com/google/uuid" -) - -func getUUID(c *gin.Context, name string) (uuid.UUID, error) { - value, succ := c.GetPostForm(name) - if !succ { - return uuid.UUID{}, fmt.Errorf("not set") - } - - id, err := uuid.Parse(value) - if err != nil { - return uuid.UUID{}, fmt.Errorf("not a valid uuid: %w", err) - } - - return id, nil -} - -func getNullUUIDFromParam(c *gin.Context, name string) (uuid.NullUUID, error) { - value := c.Param(name) - if value == "" { - return uuid.NullUUID{}, nil - } - - id, err := uuid.Parse(value) - if err != nil { - return uuid.NullUUID{}, fmt.Errorf("not a valid uuid: %w", err) - } - - return uuid.NullUUID{ - UUID: id, - Valid: true, - }, nil -} - -func getNullUUIDFromForm(c *gin.Context, name string) (uuid.NullUUID, error) { - value, succ := c.GetPostForm(name) - if !succ || value == "" { - return uuid.NullUUID{}, nil - } - - id, err := uuid.Parse(value) - if err != nil { - return uuid.NullUUID{}, fmt.Errorf("not a valid uuid: %w", err) - } - - return uuid.NullUUID{ - UUID: id, - Valid: true, - }, nil -} diff --git a/postgres/budgetservice.go b/postgres/budgetservice.go index ab78aa4..4af5c36 100644 --- a/postgres/budgetservice.go +++ b/postgres/budgetservice.go @@ -11,6 +11,10 @@ import ( // NewBudget creates a budget and adds it to the current user func (s *Database) NewBudget(context context.Context, name string, userID uuid.UUID) (*Budget, error) { tx, err := s.BeginTx(context, &sql.TxOptions{}) + if err != nil { + return nil, fmt.Errorf("begin transaction: %w", err) + } + q := s.WithTx(tx) budget, err := q.CreateBudget(context, CreateBudgetParams{ Name: name, @@ -50,7 +54,10 @@ func (s *Database) NewBudget(context context.Context, name string, userID uuid.U return nil, fmt.Errorf("set inflow category: %w", err) } - tx.Commit() + err = tx.Commit() + if err != nil { + return nil, fmt.Errorf("commit: %w", err) + } return &budget, nil }