github.com/bitcubate/cryptojournal@v1.2.5-0.20171102134152-f578b3d788ab/src/lib/resource/validate.go (about) 1 package resource 2 3 import ( 4 "time" 5 ) 6 7 // Methods for validating params passed from the database row as interface{} types 8 // perhaps this should be a sub-package for clarity? 9 10 // ValidateFloat returns the float value of param or 0.0 11 func ValidateFloat(param interface{}) float64 { 12 var v float64 13 if param != nil { 14 switch param.(type) { 15 case float64: 16 v = param.(float64) 17 case float32: 18 v = float64(param.(float32)) 19 case int: 20 v = float64(param.(int)) 21 case int64: 22 v = float64(param.(int64)) 23 } 24 } 25 return v 26 } 27 28 // ValidateBoolean returns the bool value of param or false 29 func ValidateBoolean(param interface{}) bool { 30 var v bool 31 if param != nil { 32 switch param.(type) { 33 case bool: 34 v = param.(bool) 35 } 36 } 37 return v 38 } 39 40 // ValidateInt returns the int value of param or 0 41 func ValidateInt(param interface{}) int64 { 42 var v int64 43 if param != nil { 44 switch param.(type) { 45 case int64: 46 v = param.(int64) 47 case float64: 48 v = int64(param.(float64)) 49 case int: 50 v = int64(param.(int)) 51 } 52 } 53 return v 54 } 55 56 // ValidateString returns the string value of param or "" 57 func ValidateString(param interface{}) string { 58 var v string 59 if param != nil { 60 switch param.(type) { 61 case string: 62 v = param.(string) 63 } 64 } 65 return v 66 } 67 68 // ValidateTime returns the time value of param or the zero value of time.Time 69 func ValidateTime(param interface{}) time.Time { 70 var v time.Time 71 if param != nil { 72 switch param.(type) { 73 case time.Time: 74 v = param.(time.Time) 75 } 76 } 77 return v 78 }