in soql/formatter.go [256:281]
func WhereIn(field string, values []interface{}) (*WhereClause, error) {
if field == "" {
return nil, errors.New("soql where: field can not be empty")
}
if values == nil {
return nil, errors.New("soql where: value array can not be nil")
}
set := make([]string, len(values))
for idx, value := range values {
switch value.(type) {
case string:
set[idx] = fmt.Sprintf("'%s'", value.(string))
case bool:
return nil, errors.New("where in: boolean is not a value set value")
case time.Time:
date := value.(time.Time)
set[idx] = date.Format(time.RFC3339)
default:
set[idx] = fmt.Sprintf("%v", value)
}
}
return &WhereClause{
expression: fmt.Sprintf("%s IN (%s)", field, strings.Join(set, ",")),
}, nil
}