diff --git a/ruby/lib/jam_ruby/models/band_search.rb b/ruby/lib/jam_ruby/models/band_search.rb index 272198c6f..afbf5657a 100644 --- a/ruby/lib/jam_ruby/models/band_search.rb +++ b/ruby/lib/jam_ruby/models/band_search.rb @@ -106,12 +106,73 @@ module JamRuby end def self.search_target_class - User + Band end - def do_search(params={}) - rel = User.musicians.where('users.id <> ?', self.user.id) - rel = self._sort_order(rel) + def _sort_order(rel, filter) + rel + end + + def _genres(rel, filter) + super(rel, filter) + end + + def _instruments(rel, filter) + rel + end + + def _concert_gigs(rel, filter) + rel + end + + def _band_type(rel, filter) + case filter[KEY_BAND_TYPE] + when GenrePlayer::VIRTUAL_BAND: rel.where(band_type: GenrePlayer::VIRTUAL_BAND) + when GenrePlayer::TRADITIONAL_BAND: rel.where(band_type: GenrePlayer::TRADITIONAL_BAND) + default: rel + end + end + + def _play_commit(rel, filter) + rel + end + + def _tour_option(rel, filter) + case filter[KEY_TOUR_OPTION] + when 'yes': rel.where(touring_option: true) + when 'no': rel.where(touring_option: false) + default: rel + end + end + + def _perform_samples(rel, filter) + rel + end + + def _max_cost(rel, filter) + rel + end + + def _free_gigs(rel, filter) + case filter[KEY_FREE_GIGS] + when 'yes': rel.where(free_gigs: true) + when 'no': rel.where(free_gigs: false) + default: rel + end + end + + def _skill_level(rel, filter) + rel + end + + def do_search(filter) + rel = Band.unscoped + filter.keys.each do |fkey| + mname = "_#{fkey}" + if self.responds_to?(mname) + rel = self.send(mname.to_sym, rel, filter) + end + end rel end