(s *schema.Schema, q sq.SelectBuilder, filter interface{}, join bool, sqlizer []sq.Sqlizer)
| 1294 | } |
| 1295 | |
| 1296 | func addToFilter(s *schema.Schema, q sq.SelectBuilder, filter interface{}, join bool, sqlizer []sq.Sqlizer) ([]sq.Sqlizer, error) { |
| 1297 | filters := filter.([]map[string]interface{}) |
| 1298 | for _, filter := range filters { |
| 1299 | if match, ok := filter[OrCondition]; ok { |
| 1300 | res, err := addOrToQuery(s, q, match, join) |
| 1301 | if err != nil { |
| 1302 | return nil, err |
| 1303 | } |
| 1304 | sqlizer = append(sqlizer, res) |
| 1305 | } else if match, ok := filter[AndCondition]; ok { |
| 1306 | res, err := addAndToQuery(s, q, match, join) |
| 1307 | if err != nil { |
| 1308 | return nil, err |
| 1309 | } |
| 1310 | sqlizer = append(sqlizer, res) |
| 1311 | } else { |
| 1312 | key := filter["property"].(string) |
| 1313 | property, err := s.GetPropertyByID(key) |
| 1314 | if err != nil { |
| 1315 | return nil, err |
| 1316 | } |
| 1317 | |
| 1318 | var column string |
| 1319 | if join { |
| 1320 | column = makeColumn(s.GetDbTableName(), *property) |
| 1321 | } else { |
| 1322 | column = quote(key) |
| 1323 | } |
| 1324 | |
| 1325 | // TODO: add other operators |
| 1326 | value := filter["value"] |
| 1327 | switch filter["type"] { |
| 1328 | case "eq": |
| 1329 | sqlizer = append(sqlizer, sq.Eq{column: value}) |
| 1330 | case "neq": |
| 1331 | sqlizer = append(sqlizer, sq.NotEq{column: value}) |
| 1332 | default: |
| 1333 | panic("type has to be one of [eq, neq]") |
| 1334 | } |
| 1335 | } |
| 1336 | } |
| 1337 | return sqlizer, nil |
| 1338 | } |
| 1339 | |
| 1340 | //SetMaxOpenConns limit maximum connections |
| 1341 | func (db *DB) SetMaxOpenConns(maxIdleConns int) { |
no test coverage detected