From b327410f5e6c3eac385284248cd8ff42a496a0d0 Mon Sep 17 00:00:00 2001 From: Hayden <64056131+hay-kot@users.noreply.github.com> Date: Sat, 3 Dec 2022 17:01:56 -0900 Subject: [PATCH] cleanup parser and defaults --- backend/app/api/handlers/v1/v1_ctrl_statistics.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/backend/app/api/handlers/v1/v1_ctrl_statistics.go b/backend/app/api/handlers/v1/v1_ctrl_statistics.go index 34ec3ec..6c09bc6 100644 --- a/backend/app/api/handlers/v1/v1_ctrl_statistics.go +++ b/backend/app/api/handlers/v1/v1_ctrl_statistics.go @@ -79,17 +79,24 @@ func (ctrl *V1Controller) HandleGroupStatistics() server.HandlerFunc { // @Router /v1/groups/statistics/purchase-price [GET] // @Security Bearer func (ctrl *V1Controller) HandleGroupStatisticsPriceOverTime() server.HandlerFunc { + parseDate := func(datestr string, defaultDate time.Time) (time.Time, error) { + if datestr == "" { + return defaultDate, nil + } + return time.Parse("2006-01-02", datestr) + } + return func(w http.ResponseWriter, r *http.Request) error { ctx := services.NewContext(r.Context()) - startDate, err := time.Parse("2006-01-02", r.URL.Query().Get("start")) + startDate, err := parseDate(r.URL.Query().Get("start"), time.Now().AddDate(0, -1, 0)) if err != nil { return validate.NewRequestError(err, http.StatusBadRequest) } - endDate, err := time.Parse("2006-01-02", r.URL.Query().Get("end")) + endDate, err := parseDate(r.URL.Query().Get("end"), time.Now()) if err != nil { - endDate = time.Now() + return validate.NewRequestError(err, http.StatusBadRequest) } stats, err := ctrl.repo.Groups.StatsPurchasePrice(ctx, ctx.GID, startDate, endDate)