84 lines
1.4 KiB
Go
84 lines
1.4 KiB
Go
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)
|
|
}
|