diff --git a/db_utils/db_utils.go b/db_utils/db_utils.go index 0fd8493f8b99ba135de4fef07a7d093ae1190061..a8e6bdb5431ca3cb6cb828b8b4fd324f845f2a8d 100644 --- a/db_utils/db_utils.go +++ b/db_utils/db_utils.go @@ -93,7 +93,7 @@ func PullAbsoluteValue(value string) int64 { return val } -func AbsoluteDateStringQuery(absolute string) string { +func AbsoluteDateStringQuery(absolute string) (string, error) { var value int64 timeNow := date_utils.CurrentDate() @@ -101,37 +101,37 @@ func AbsoluteDateStringQuery(absolute string) string { value = PullAbsoluteValue(absolute) since := timeNow.Add(time.Duration(-value) * time.Hour) - return fmt.Sprintf(" >= '%v'", date_utils.DateDBFormattedString(since)) + return fmt.Sprintf(" >= '%v'", date_utils.DateDBFormattedString(since)), nil } if CheckAbsoluteRegex(LastDay, absolute) { startDay := time.Date(timeNow.Year(), timeNow.Month(), timeNow.Day(), 0, 0, 0, 0, date_utils.CurrentLocation()) endDay := time.Date(timeNow.Year(), timeNow.Month(), timeNow.Day(), 23, 59, 59, 999999999, date_utils.CurrentLocation()) - return fmt.Sprintf(" BETWEEN '%v' AND '%v'", date_utils.DateDBFormattedString(startDay), date_utils.DateDBFormattedString(endDay)) + return fmt.Sprintf(" BETWEEN '%v' AND '%v'", date_utils.DateDBFormattedString(startDay), date_utils.DateDBFormattedString(endDay)), nil } if CheckAbsoluteRegex(LastXDays, absolute) { value = PullAbsoluteValue(absolute) since := timeNow.AddDate(0, 0, -int(value)) - return fmt.Sprintf(" >= '%v'", date_utils.DateDBFormattedString(since)) + return fmt.Sprintf(" >= '%v'", date_utils.DateDBFormattedString(since)), nil } if CheckAbsoluteRegex(LastMonth, absolute) { firstOfMonth := time.Date(timeNow.Year(), timeNow.Month(), 1, 0, 0, 0, 0, date_utils.CurrentLocation()) lastDay := firstOfMonth.AddDate(0, 1, -1) lastOfMonth := time.Date(lastDay.Year(), lastDay.Month(), lastDay.Day(), 23, 59, 59, 999999999, date_utils.CurrentLocation()) - return fmt.Sprintf(" BETWEEN '%v' AND '%v'", date_utils.DateDBFormattedString(firstOfMonth), date_utils.DateDBFormattedString(lastOfMonth)) + return fmt.Sprintf(" BETWEEN '%v' AND '%v'", date_utils.DateDBFormattedString(firstOfMonth), date_utils.DateDBFormattedString(lastOfMonth)), nil } if CheckAbsoluteRegex(Yesterday, absolute) { yesterday := timeNow.AddDate(0, 0, -1) startDay := time.Date(yesterday.Year(), yesterday.Month(), yesterday.Day(), 0, 0, 0, 0, date_utils.CurrentLocation()) endDay := time.Date(yesterday.Year(), yesterday.Month(), yesterday.Day(), 23, 59, 59, 999999999, date_utils.CurrentLocation()) - return fmt.Sprintf(" BETWEEN '%v' AND '%v'", date_utils.DateDBFormattedString(startDay), date_utils.DateDBFormattedString(endDay)) + return fmt.Sprintf(" BETWEEN '%v' AND '%v'", date_utils.DateDBFormattedString(startDay), date_utils.DateDBFormattedString(endDay)), nil } - // Not matched, so try to match it literally (It'll probably break and return nothing, but that's good) - return fmt.Sprintf(" = '%v'", absolute) + // Not matched + return "", errors.Error("invalid absolute date query") } type PageAndOrderParams struct {