separating object receiving in user#receive
This commit is contained in:
parent
7e568db032
commit
d5cc0ed6dc
2 changed files with 36 additions and 16 deletions
|
|
@ -38,33 +38,41 @@ module Diaspora
|
||||||
if object.is_a?(Comment) || object.is_a?(Post)|| object.is_a?(Request) || object.is_a?(Retraction) || object.is_a?(Profile)
|
if object.is_a?(Comment) || object.is_a?(Post)|| object.is_a?(Request) || object.is_a?(Retraction) || object.is_a?(Profile)
|
||||||
e = EMWebfinger.new(object.diaspora_handle)
|
e = EMWebfinger.new(object.diaspora_handle)
|
||||||
|
|
||||||
e.on_person { |person|
|
e.on_person do |person|
|
||||||
|
|
||||||
if person.class == Person
|
if person.class == Person
|
||||||
object.person = person if object.respond_to? :person=
|
object.person = person if object.respond_to? :person=
|
||||||
|
|
||||||
if object.is_a? Request
|
unless object.is_a?(Request) || self.contact_for(salmon_author)
|
||||||
return receive_request object, person
|
raise "Not friends with that person"
|
||||||
end
|
|
||||||
|
|
||||||
raise "Not friends with that person" unless self.contact_for(salmon_author)
|
|
||||||
|
|
||||||
if object.is_a?(Comment)
|
|
||||||
receive_comment object
|
|
||||||
elsif object.is_a?(Retraction)
|
|
||||||
receive_retraction object
|
|
||||||
elsif object.is_a?(Profile)
|
|
||||||
receive_profile object, person
|
|
||||||
else
|
else
|
||||||
receive_post object
|
|
||||||
|
return receive_object(object,person)
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
}
|
|
||||||
|
end
|
||||||
else
|
else
|
||||||
raise "you messed up"
|
raise "you messed up"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def receive_object(object,person)
|
||||||
|
if object.is_a?(Request)
|
||||||
|
receive_request object, person
|
||||||
|
elsif object.is_a?(Profile)
|
||||||
|
receive_profile object, person
|
||||||
|
|
||||||
|
elsif object.is_a?(Comment)
|
||||||
|
receive_comment object
|
||||||
|
elsif object.is_a?(Retraction)
|
||||||
|
receive_retraction object
|
||||||
|
else
|
||||||
|
receive_post object
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def receive_retraction retraction
|
def receive_retraction retraction
|
||||||
if retraction.type == 'Person'
|
if retraction.type == 'Person'
|
||||||
unless retraction.person.id.to_s == retraction.post_id.to_s
|
unless retraction.person.id.to_s == retraction.post_id.to_s
|
||||||
|
|
|
||||||
|
|
@ -97,8 +97,9 @@ describe User do
|
||||||
|
|
||||||
context 'dispatching' do
|
context 'dispatching' do
|
||||||
let!(:user3) { make_user }
|
let!(:user3) { make_user }
|
||||||
let!(:aspect3) { user3.aspects.create(:name => 'heroes') }
|
|
||||||
let!(:user4) { make_user }
|
let!(:user4) { make_user }
|
||||||
|
|
||||||
|
let!(:aspect3) { user3.aspects.create(:name => 'heroes') }
|
||||||
let!(:aspect4) { user4.aspects.create(:name => 'heroes') }
|
let!(:aspect4) { user4.aspects.create(:name => 'heroes') }
|
||||||
|
|
||||||
let!(:post) { user.build_post :status_message, :message => "hey" }
|
let!(:post) { user.build_post :status_message, :message => "hey" }
|
||||||
|
|
@ -128,6 +129,17 @@ describe User do
|
||||||
user.should_receive(:push_to_person).twice
|
user.should_receive(:push_to_person).twice
|
||||||
user.push_to_people(post, [user2.person, user3.person])
|
user.push_to_people(post, [user2.person, user3.person])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'does not use the queue for local transfer' do
|
||||||
|
User::QUEUE.should_receive(:add_post_request).twice
|
||||||
|
|
||||||
|
remote_person = user4.person
|
||||||
|
remote_person.owner_id = nil
|
||||||
|
remote_person.save
|
||||||
|
|
||||||
|
user.push_to_people(post, [user2.person, user3.person, remote_person])
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue