Skip to content
Extraits de code Groupes Projets
Valider d5cc0ed6 rédigé par danielvincent's avatar danielvincent
Parcourir les fichiers

separating object receiving in user#receive

parent 7e568db0
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -38,33 +38,41 @@ module Diaspora ...@@ -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 else
raise "Not friends with that person" unless self.contact_for(salmon_author) return receive_object(object,person)
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
receive_post object
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 ...@@ -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 ...@@ -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
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter