VRFS-2244 handle duplicate friend requests better
This commit is contained in:
parent
bb33421e4a
commit
3641521740
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue