diff --git a/app/models/services/facebook.rb b/app/models/services/facebook.rb index fbef23e8a8ba6b5d17d4472c72cca87bc024a309..146fc882a8b631b2e10f7d40454440161501b5c7 100644 --- a/app/models/services/facebook.rb +++ b/app/models/services/facebook.rb @@ -47,6 +47,6 @@ class Services::Facebook < Service su.attach_local_models su } - ServiceUser.import(data) + ServiceUser.import(data, :on_duplicate_key_update => [:updated_at, :contact_id, :person_id, :request_id, :invitation_id, :photo_url, :name]) end end diff --git a/spec/models/services/facebook_spec.rb b/spec/models/services/facebook_spec.rb index 86e246e592419110a299afe8965cad5245bc9c6b..c5257f2b4545eca7839669412c8a92f2d4004910 100644 --- a/spec/models/services/facebook_spec.rb +++ b/spec/models/services/facebook_spec.rb @@ -71,6 +71,18 @@ JSON @service.save_friends @service.service_users.first.person.should == @user2.person end + + it 'overwrites local model information' do + @service.save_friends + su = @service.service_users.first + su.person.should == @user2.person + su.contact.should == nil + + connect_users_with_aspects(alice, @user2) + @service.save_friends + su.person.should == @user2.person + su.reload.contact.should == alice.contact_for(@user2.person) + end end describe '#finder' do