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  }