func WhereIn()

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
}