func FilterRow()

in snapshot/snapshot.go [71:100]


func FilterRow(input string, table string, params *config.TableParams) string {
	var rowFilters []*config.RowFilter

	if params == nil || len(params.RowFilter.Values) == 0 || params.RowFilter.Condition == "" || params.RowFilter.Column == "" {
		// if the legacy RowFilter is not set, use RowFilters if any
		if params != nil && len(params.RowFilters) > 0 {
			for _, rowFilter := range params.RowFilters {
				rf := rowFilter
				rowFilters = append(rowFilters, &rf)
			}
			return getWhereClauseFromRowFilters(rowFilters)
		}
		conf := config.Get()
		if conf.Filters == nil {
			return ""
		}
		if _, ok := conf.Filters[input]; !ok || conf.Filters[input] == nil {
			return ""
		}
		rf, ok := conf.Filters[input][table]
		if !ok || len(rf.Values) == 0 || rf.Condition == "" || rf.Column == "" {
			return ""
		}
		rowFilters = append(rowFilters, &rf)
	} else {
		rowFilters = append(rowFilters, &params.RowFilter)
	}

	return getWhereClauseFromRowFilters(rowFilters)
}