wip
This commit is contained in:
parent
88e642ffdb
commit
3afa14d341
7 changed files with 92 additions and 2 deletions
13
app/models/jobs/update_service_users.rb
Normal file
13
app/models/jobs/update_service_users.rb
Normal file
|
|
@ -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
|
||||||
2
app/models/service_user.rb
Normal file
2
app/models/service_user.rb
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
class ServiceUser < ActiveRecord::Base
|
||||||
|
end
|
||||||
17
db/migrate/20110318000734_create_service_users.rb
Normal file
17
db/migrate/20110318000734_create_service_users.rb
Normal file
|
|
@ -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
|
||||||
11
db/schema.rb
11
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", "recipient_id"], :name => "index_requests_on_sender_id_and_recipient_id", :unique => true
|
||||||
add_index "requests", ["sender_id"], :name => "index_requests_on_sender_id"
|
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|
|
create_table "services", :force => true do |t|
|
||||||
t.string "type", :null => false
|
t.string "type", :null => false
|
||||||
t.integer "user_id", :null => false
|
t.integer "user_id", :null => false
|
||||||
|
|
|
||||||
44
spec/models/jobs/update_service_users_spec.rb
Normal file
44
spec/models/jobs/update_service_users_spec.rb
Normal file
|
|
@ -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 = <<JSON
|
||||||
|
{
|
||||||
|
"data": [
|
||||||
|
{
|
||||||
|
"name": "#{@user2_fb_name}",
|
||||||
|
"id": "#{@user2_fb_id}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Person to Invite",
|
||||||
|
"id": "abc123"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
JSON
|
||||||
|
@web_mock = mock()
|
||||||
|
@web_mock.stub!(:body).and_return(@fb_list_hash)
|
||||||
|
RestClient.stub!(:get).and_return(@web_mock)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'requests a friend list' do
|
||||||
|
RestClient.should_receive(:get).with("https://graph.facebook.com/me/friends", {:params => {: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
|
||||||
5
spec/models/service_user_spec.rb
Normal file
5
spec/models/service_user_spec.rb
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe ServiceUser do
|
||||||
|
pending "add some examples to (or delete) #{__FILE__}"
|
||||||
|
end
|
||||||
|
|
@ -58,8 +58,6 @@ JSON
|
||||||
@service.finder
|
@service.finder
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
context 'returns a hash' do
|
context 'returns a hash' do
|
||||||
it 'returns a hash' do
|
it 'returns a hash' do
|
||||||
@service.finder.class.should == Hash
|
@service.finder.class.should == Hash
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue