diff --git a/app/models/jobs/update_service_users.rb b/app/models/jobs/update_service_users.rb new file mode 100644 index 000000000..659fb6bda --- /dev/null +++ b/app/models/jobs/update_service_users.rb @@ -0,0 +1,13 @@ +# Copyright (c) 2010, Diaspora Inc. This file is +# licensed under the Affero General Public License version 3 or later. See +# the COPYRIGHT file. + + +module Job + class UpdateServiceUsers < Base + def self.perform_delegate(service_id) + service = Service.find(service_id) + response = RestClient.get("https://graph.facebook.com/me/friends", {:params => {:access_token => service.access_token}}) + end + end +end diff --git a/app/models/service_user.rb b/app/models/service_user.rb new file mode 100644 index 000000000..226a3fdbb --- /dev/null +++ b/app/models/service_user.rb @@ -0,0 +1,2 @@ +class ServiceUser < ActiveRecord::Base +end diff --git a/db/migrate/20110318000734_create_service_users.rb b/db/migrate/20110318000734_create_service_users.rb new file mode 100644 index 000000000..4e5a98119 --- /dev/null +++ b/db/migrate/20110318000734_create_service_users.rb @@ -0,0 +1,17 @@ +class CreateServiceUsers < ActiveRecord::Migration + def self.up + create_table :service_users do |t| + t.string :uid + t.string :name + t.integer :service_id + t.integer :person_id + t.integer :contact_id + t.integer :request_id + t.timestamps + end + end + + def self.down + drop_table :service_users + end +end diff --git a/db/schema.rb b/db/schema.rb index 488540fe3..7d9097f79 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -273,6 +273,17 @@ ActiveRecord::Schema.define(:version => 20110319172136) do add_index "requests", ["sender_id", "recipient_id"], :name => "index_requests_on_sender_id_and_recipient_id", :unique => true add_index "requests", ["sender_id"], :name => "index_requests_on_sender_id" + create_table "service_users", :force => true do |t| + t.string "uid" + t.string "name" + t.integer "service_id" + t.integer "person_id" + t.integer "contact_id" + t.integer "request_id" + t.datetime "created_at" + t.datetime "updated_at" + end + create_table "services", :force => true do |t| t.string "type", :null => false t.integer "user_id", :null => false diff --git a/spec/models/jobs/update_service_users_spec.rb b/spec/models/jobs/update_service_users_spec.rb new file mode 100644 index 000000000..6c0803769 --- /dev/null +++ b/spec/models/jobs/update_service_users_spec.rb @@ -0,0 +1,44 @@ +require 'spec_helper' + +describe Job::UpdateServiceUsers do + before do + @user = alice + @post = @user.post(:status_message, :text => "hello", :to =>@user.aspects.first.id) + @service = Services::Facebook.new(:access_token => "yeah") + @user.services << @service + + @user2 = Factory.create(:user_with_aspect) + @user2_fb_id = '820651' + @user2_fb_name = 'Maxwell Salzberg' + @user2_service = Services::Facebook.new(:uid => @user2_fb_id, :access_token => "yo") + @user2.services << @user2_service + @fb_list_hash = < {:access_token => @service.access_token}}).and_return(@web_mock) + Job::UpdateServiceUsers.perform(@service.id) + end + + it 'creates a service user objects' do + lambda{ + Job::UpdateServiceUsers.perform(@service.id) + }.should change(ServiceUser, :count).by(2) + end + end diff --git a/spec/models/service_user_spec.rb b/spec/models/service_user_spec.rb new file mode 100644 index 000000000..52ca6d048 --- /dev/null +++ b/spec/models/service_user_spec.rb @@ -0,0 +1,5 @@ +require 'spec_helper' + +describe ServiceUser do + pending "add some examples to (or delete) #{__FILE__}" +end diff --git a/spec/models/services/facebook_spec.rb b/spec/models/services/facebook_spec.rb index a48a722f0..2b99e1bf8 100644 --- a/spec/models/services/facebook_spec.rb +++ b/spec/models/services/facebook_spec.rb @@ -58,8 +58,6 @@ JSON @service.finder end - - context 'returns a hash' do it 'returns a hash' do @service.finder.class.should == Hash