package util import ( "net/url" "strconv" "time" "github.com/jackc/pgx/v5/pgtype" ) func DefaultStartTimeAndEndTime(start string, end string) (string, string) { if len(start) == 0 { start = "2000-01-01 00:00:00" } if len(end) == 0 { end = time.Now().Add(time.Hour * 24).Format(time.DateTime) } return start, end } func DefaultString(values url.Values, key, defaultValue string) string { v := values.Get(key) if len(v) == 0 { return defaultValue } return v } func DefaultInt(values url.Values, key string, defaultValue int) int { v := values.Get(key) if len(v) == 0 { return defaultValue } i, err := strconv.Atoi(v) if err != nil { return defaultValue } return i } func ConvertInt16(value string, defaultValue int16) int16 { i, err := strconv.Atoi(value) if err != nil { return defaultValue } return int16(i) } func ConvertInt32(value string, defaultValue int32) int32 { i, err := strconv.Atoi(value) if err != nil { return defaultValue } return int32(i) } func ConvertBool(value string, defaultValue bool) bool { b, err := strconv.ParseBool(value) if err != nil { return defaultValue } return b } func ConvertInt[T int | int16 | int32 | int64](value string, defaultValue T) T { i, err := strconv.Atoi(value) if err != nil { return defaultValue } return T(i) } func PgtypeNumericToFloat64(num pgtype.Numeric) float64 { f1, _ := num.Float64Value() f2, _ := f1.Value() return f2.(float64) }