From 18cd29cca219484f26887a8ef92e3f497878ff2d Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Sat, 11 Dec 2021 12:52:52 +0000 Subject: [PATCH] Exctract getDate --- http/budgeting.go | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/http/budgeting.go b/http/budgeting.go index 797b863..b8999d2 100644 --- a/http/budgeting.go +++ b/http/budgeting.go @@ -39,6 +39,27 @@ type CategoryWithBalance struct { Assigned float64 } +func getDate(c *gin.Context) (time.Time, error) { + var year, month int + yearString := c.Param("year") + monthString := c.Param("month") + if yearString == "" && monthString == "" { + return getFirstOfMonthTime(time.Now()), nil + } + + year, err := strconv.Atoi(yearString) + if err != nil { + return time.Time{}, fmt.Errorf("parse year: %w", err) + } + + month, err = strconv.Atoi(monthString) + if err != nil { + return time.Time{}, fmt.Errorf("parse month: %w", err) + } + + return getFirstOfMonth(year, month, time.Now().Location()), nil +} + func (h *Handler) budgeting(c *gin.Context) { budgetID := c.Param("budgetid") budgetUUID, err := uuid.Parse(budgetID) @@ -47,28 +68,11 @@ func (h *Handler) budgeting(c *gin.Context) { return } - var firstOfMonth time.Time - var year, month int - yearString := c.Param("year") - monthString := c.Param("month") - if yearString != "" && monthString != "" { - year, err = strconv.Atoi(yearString) - if err != nil { - c.Redirect(http.StatusTemporaryRedirect, "/budget/"+budgetUUID.String()) - return - } - - month, err = strconv.Atoi(monthString) - if err != nil { - c.Redirect(http.StatusTemporaryRedirect, "/budget/"+budgetUUID.String()) - return - } - - firstOfMonth = getFirstOfMonth(year, month, time.Now().Location()) - } else { - firstOfMonth = getFirstOfMonthTime(time.Now()) + firstOfMonth, err := getDate(c) + if err != nil { + c.Redirect(http.StatusTemporaryRedirect, "/budget/"+budgetUUID.String()) + return } - firstOfNextMonth := firstOfMonth.AddDate(0, 1, 0) firstOfPreviousMonth := firstOfMonth.AddDate(0, -1, 0)