vrfs-774: second musician searches working properly (likers)

This commit is contained in:
Jonathan Kolyer 2013-10-28 12:21:07 -05:00
parent 5d4ab42906
commit 72d6d4e699
2 changed files with 21 additions and 2 deletions

View File

@ -925,6 +925,10 @@ module JamRuby
case ordering = Search.order_param(params)
when :liked
rel = rel.select("COUNT(likers) AS lcount, users.id")
rel = rel.joins("LEFT JOIN users_likers AS likers ON likers.user_id = users.id")
rel = rel.group("users.id")
rel = rel.order("COUNT(likers) DESC")
when :followed
rel = rel.select("COUNT(follows) AS fcount, users.id")
rel = rel.joins("LEFT JOIN users_followers AS follows ON follows.user_id = users.id")

View File

@ -54,8 +54,23 @@ describe User do
results.all.count.should == 2
end
it "should find all musicians sorted by follows with pagination" do
pending
it "should find all musicians sorted by likes with pagination" do
# establish sorting order
[@user2, @user3, @user1].each { |uu| User.create_user_like(@user4.id, uu.id) }
[@user2, @user4].each { |uu| User.create_user_like(@user3.id, uu.id) }
[@user2].each { |uu| User.create_user_like(@user2.id, uu.id) }
# get all the users in correct order
params = { :per_page => @users.size, :orderby => :liked }
results = User.musician_search(params)
results.all.count.should == @users.size
results.each_with_index do |uu, idx|
uu.id.should == @users.reverse[idx].id
end
# refresh the order to ensure it works right
[@user3, @user4, @user1].each { |uu| User.create_user_like(@user2.id, uu.id) }
results = User.musician_search(params)
results[0].id.should == @user2.id
end
it "should find all musicians sorted by now playing" do