github.com/RichardKnop/go-oauth2-server@v1.0.5-0.20201019163316-d02a401490d0/util/sql.go (about) 1 package util 2 3 import ( 4 "database/sql" 5 "time" 6 7 "github.com/lib/pq" 8 ) 9 10 // IntOrNull returns properly configured sql.NullInt64 11 func IntOrNull(n int64) sql.NullInt64 { 12 return sql.NullInt64{Int64: n, Valid: true} 13 } 14 15 // PositiveIntOrNull returns properly configured sql.NullInt64 for a positive number 16 func PositiveIntOrNull(n int64) sql.NullInt64 { 17 if n <= 0 { 18 return sql.NullInt64{Int64: 0, Valid: false} 19 } 20 return sql.NullInt64{Int64: n, Valid: true} 21 } 22 23 // FloatOrNull returns properly configured sql.NullFloat64 24 func FloatOrNull(n float64) sql.NullFloat64 { 25 return sql.NullFloat64{Float64: n, Valid: true} 26 } 27 28 // PositiveFloatOrNull returns properly configured sql.NullFloat64 for a positive number 29 func PositiveFloatOrNull(n float64) sql.NullFloat64 { 30 if n <= 0 { 31 return sql.NullFloat64{Float64: 0.0, Valid: false} 32 } 33 return sql.NullFloat64{Float64: n, Valid: true} 34 } 35 36 // StringOrNull returns properly configured sql.NullString 37 func StringOrNull(str string) sql.NullString { 38 if str == "" { 39 return sql.NullString{String: "", Valid: false} 40 } 41 return sql.NullString{String: str, Valid: true} 42 } 43 44 // TimeOrNull returns properly confiigured pq.TimeNull 45 func TimeOrNull(t *time.Time) pq.NullTime { 46 if t == nil { 47 return pq.NullTime{Time: time.Time{}, Valid: false} 48 } 49 return pq.NullTime{Time: *t, Valid: true} 50 }