diff --git a/db_utils/db_utils.go b/db_utils/db_utils.go index e80f5f6c41b3da6d644ff857190e5baf2f7c25bb..218735588b7ebfcd86063c58a41bbd56e485b653 100644 --- a/db_utils/db_utils.go +++ b/db_utils/db_utils.go @@ -20,7 +20,7 @@ const ( Yesterday string = "^yesterday$" ) -func checkAbsoluteRegex(regex string, value string) bool { +func CheckAbsoluteRegex(regex string, value string) bool { matchesRegex, err := regexp.Match(regex, []byte(value)) if matchesRegex && err == nil { return true @@ -29,7 +29,7 @@ func checkAbsoluteRegex(regex string, value string) bool { return false } -func pullAbsoluteValue(value string) int64 { +func PullAbsoluteValue(value string) int64 { reg, err := regexp.Compile("[a-zA-Z]+") if err != nil { return 0 @@ -45,32 +45,32 @@ func AbsoluteDateStringQuery(absolute string) string { var value int64 timeNow := date_utils.CurrentDate() - if checkAbsoluteRegex(LastXHours, absolute) { - value = pullAbsoluteValue(absolute) + if CheckAbsoluteRegex(LastXHours, absolute) { + value = PullAbsoluteValue(absolute) since := timeNow.Add(time.Duration(-value) * time.Hour) return fmt.Sprintf(" >= '%v'", date_utils.DateDBFormattedString(since)) } - if checkAbsoluteRegex(LastDay, absolute) { + 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)) } - if checkAbsoluteRegex(LastXDays, absolute) { - value = pullAbsoluteValue(absolute) + if CheckAbsoluteRegex(LastXDays, absolute) { + value = PullAbsoluteValue(absolute) since := timeNow.AddDate(0, 0, -int(value)) return fmt.Sprintf(" >= '%v'", date_utils.DateDBFormattedString(since)) } - if checkAbsoluteRegex(LastMonth, absolute) { + 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)) } - if checkAbsoluteRegex(Yesterday, absolute) { + 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())