diff --git a/config/initializers/diaspora_federation.rb b/config/initializers/diaspora_federation.rb index 58e16071c..09199b754 100644 --- a/config/initializers/diaspora_federation.rb +++ b/config/initializers/diaspora_federation.rb @@ -116,7 +116,7 @@ DiasporaFederation.configure do |config| when DiasporaFederation::Entities::PollParticipation Diaspora::Federation::Receive.poll_participation(entity) when DiasporaFederation::Entities::Profile - # TODO: update profile + Diaspora::Federation::Receive.profile(entity) when DiasporaFederation::Entities::Reshare Diaspora::Federation::Receive.reshare(entity) when DiasporaFederation::Entities::StatusMessage diff --git a/lib/diaspora/federation/entities.rb b/lib/diaspora/federation/entities.rb index 54c4f2efd..2515a0f95 100644 --- a/lib/diaspora/federation/entities.rb +++ b/lib/diaspora/federation/entities.rb @@ -62,7 +62,7 @@ module Diaspora def self.profile(profile) DiasporaFederation::Entities::Profile.new( - diaspora_id: profile.diaspora_handle, + author: profile.diaspora_handle, first_name: profile.first_name, last_name: profile.last_name, image_url: profile.image_url, diff --git a/lib/diaspora/federation/receive.rb b/lib/diaspora/federation/receive.rb index 09a990cb2..a7dbf4219 100644 --- a/lib/diaspora/federation/receive.rb +++ b/lib/diaspora/federation/receive.rb @@ -84,6 +84,25 @@ module Diaspora end end + def self.profile(entity) + author_of(entity).profile.tap do |profile| + profile.update_attributes( + first_name: entity.first_name, + last_name: entity.last_name, + image_url: entity.image_url, + image_url_medium: entity.image_url_medium, + image_url_small: entity.image_url_small, + birthday: entity.birthday, + gender: entity.gender, + bio: entity.bio, + location: entity.location, + searchable: entity.searchable, + nsfw: entity.nsfw, + tag_string: entity.tag_string + ) + end + end + def self.reshare(entity) Reshare.new( author: author_of(entity), diff --git a/spec/integration/federation/receive_federation_messages_spec.rb b/spec/integration/federation/receive_federation_messages_spec.rb index c46d2cf38..e113f072f 100644 --- a/spec/integration/federation/receive_federation_messages_spec.rb +++ b/spec/integration/federation/receive_federation_messages_spec.rb @@ -112,12 +112,13 @@ describe "Receive federation messages feature" do it_behaves_like "messages which can't be send without sharing" it "treats profile receive correctly" do - skip("TODO: handle profile update") # TODO - entity = FactoryGirl.build(:profile_entity, author: sender_id) post_message(generate_xml(entity, sender, alice), alice) - expect(Profile.exists?(diaspora_handle: entity.diaspora_id)).to be_truthy + received_profile = sender.profile.reload + + expect(received_profile.first_name).to eq(entity.first_name) + expect(received_profile.bio).to eq(entity.bio) end it "receives conversation correctly" do