added participants as filter criteria / fixed bug with genre filter

This commit is contained in:
Brian Smith 2013-01-30 10:43:01 -05:00
parent 6606094e40
commit ceaf4119af
2 changed files with 16 additions and 15 deletions

View File

@ -38,7 +38,7 @@ module JamRuby
# This is a little confusing. You can specify *BOTH* friends_only and my_bands_only to be true
# If so, then it's an OR condition. If both are false, you can get sessions with anyone.
def self.index(current_user, genres = nil, friends_only = false, my_bands_only = false)
def self.index(current_user, participants = nil, genres = nil, friends_only = false, my_bands_only = false)
query = MusicSession
.joins(
@ -88,8 +88,9 @@ module JamRuby
invitations.id IS NOT NULL
}
)
query = query.joins(:genres).where("genres.id" => genres) unless genres.nil?
query = query.where("connections.user_id" => participants.split(',')) unless participants.nil?
query = query.joins(:genres).where("genres.id" => genres.split(',')) unless genres.nil?
if my_bands_only
query = query.joins(

View File

@ -154,7 +154,7 @@ describe MusicSession do
session = FactoryGirl.create(:music_session, :creator => creator, :description => "Session", :genres => [genre])
user = FactoryGirl.create(:user)
music_sessions = MusicSession.index(user, [genre.id])
music_sessions = MusicSession.index(user, nil, [genre.id])
music_sessions.length.should == 1
end
@ -165,7 +165,7 @@ describe MusicSession do
session = FactoryGirl.create(:music_session, :creator => creator, :description => "Session", :genres => [genre1])
user = FactoryGirl.create(:user)
music_sessions = MusicSession.index(user, [genre2.id])
music_sessions = MusicSession.index(user, nil, [genre2.id])
music_sessions.length.should == 0
end
@ -174,7 +174,7 @@ describe MusicSession do
session = FactoryGirl.create(:music_session, :creator => creator, :description => "Session")
user = FactoryGirl.create(:user)
music_sessions = MusicSession.index(user, nil, true)
music_sessions = MusicSession.index(user, nil, nil, true)
music_sessions.length.should == 0
end
@ -186,13 +186,13 @@ describe MusicSession do
FactoryGirl.create(:friendship, :user => user, :friend => creator)
FactoryGirl.create(:connection, :user => creator, :music_session => session)
music_sessions = MusicSession.index(user, nil)
music_sessions = MusicSession.index(user, nil, nil)
music_sessions.length.should == 1
music_sessions = MusicSession.index(user, nil, true)
music_sessions = MusicSession.index(user, nil, nil, true)
music_sessions.length.should == 1
music_sessions = MusicSession.index(user, nil, false, true)
music_sessions = MusicSession.index(user, nil, nil, false, true)
music_sessions.length.should == 0
music_sessions = MusicSession.index(user, nil, true, true)
music_sessions = MusicSession.index(user, nil, nil, true, true)
music_sessions.length.should == 1
end
@ -201,7 +201,7 @@ describe MusicSession do
session = FactoryGirl.create(:music_session, :creator => creator, :description => "Session")
user = FactoryGirl.create(:user)
music_sessions = MusicSession.index(user, nil, false, true)
music_sessions = MusicSession.index(user, nil, nil, false, true)
music_sessions.length.should == 0
end
@ -213,13 +213,13 @@ describe MusicSession do
FactoryGirl.create(:band_musician, :band => band, :user => creator)
FactoryGirl.create(:band_musician, :band => band, :user => user)
music_sessions = MusicSession.index(user, nil)
music_sessions = MusicSession.index(user, nil, nil)
music_sessions.length.should == 1
music_sessions = MusicSession.index(user, nil, true)
music_sessions = MusicSession.index(user, nil, nil, true)
music_sessions.length.should == 0
music_sessions = MusicSession.index(user, nil, false, true)
music_sessions = MusicSession.index(user, nil, nil, false, true)
music_sessions.length.should == 1
music_sessions = MusicSession.index(user, nil, true, true)
music_sessions = MusicSession.index(user, nil, nil, true, true)
music_sessions.length.should == 1
end