VRFS-2244 handle duplicate friend requests better

This commit is contained in:
Brian Smith 2014-10-14 02:12:33 -04:00
parent bb33421e4a
commit 3641521740
2 changed files with 40 additions and 1 deletions

View File

@ -36,9 +36,15 @@ module JamRuby
ActiveRecord::Base.transaction do
friend_request = FriendRequest.find(id)
friend_request.status = status
friend_request.updated_at = Time.now
friend_request.save
duplicate_requests = FriendRequest.where("user_id = ? AND friend_id = ?", user_id, friend_id)
duplicate_requests.each do |req|
req.status = status
req.save
end
# create both records for this friendship
if friend_request.status == "accept"
Friendship.save(friend_request.user_id, friend_request.friend_id)

View File

@ -19,5 +19,38 @@ describe Friendship do
user2.first_friended_at.should_not be_nil
end
it "should accept a single request" do
user1 = FactoryGirl.create(:user)
user2 = FactoryGirl.create(:user)
req1 = FriendRequest.new
req1.user = user1
req1.friend = user2
req1.save!
FriendRequest.save(req1.id, user1.id, user2.id, 'accept', nil)
requests = FriendRequest.where('user_id = ? AND friend_id = ? AND status = ?', user1.id, user2.id, 'accept')
requests.count.should == 1
end
it "should update duplicate requests" do
user1 = FactoryGirl.create(:user)
user2 = FactoryGirl.create(:user)
req1 = FriendRequest.new
req1.user = user1
req1.friend = user2
req1.save!
req2 = FriendRequest.new
req2.user = user1
req2.friend = user2
req2.save!
FriendRequest.save(req1.id, user1.id, user2.id, 'accept', nil)
requests = FriendRequest.where('user_id = ? AND friend_id = ? AND status = ?', user1.id, user2.id, 'accept')
requests.count.should == 2
end
end