diff --git a/app/models/jobs/http_post.rb b/app/models/jobs/http_post.rb index b96d3aa9e..319276d41 100644 --- a/app/models/jobs/http_post.rb +++ b/app/models/jobs/http_post.rb @@ -1,6 +1,7 @@ module Jobs - class HttpPost + class HttpPost @queue = :http + def self.perform(url, body, tries_remaining) begin RestClient.post(url, :xml => body){ |response, request, result, &block| diff --git a/app/models/jobs/post_to_services.rb b/app/models/jobs/post_to_services.rb new file mode 100644 index 000000000..ed7e27384 --- /dev/null +++ b/app/models/jobs/post_to_services.rb @@ -0,0 +1,11 @@ +module Jobs + class PostToServices + @queue = :http + def self.perform(user_id, post_id, url) + user = User.find_by_id(user_id) + post = Post.find_by_id(post_id) + user.post_to_services(post, url) + end + end +end + diff --git a/app/models/user.rb b/app/models/user.rb index 0472ee045..54c0689e1 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -166,7 +166,6 @@ class User def post_to_hub(post) Rails.logger.debug("event=post_to_service type=pubsub sender_handle=#{self.diaspora_handle}") - EventMachine::PubSubHubbub.new(APP_CONFIG[:pubsub_server]).publish self.public_url end diff --git a/spec/models/jobs/post_to_services_spec.rb b/spec/models/jobs/post_to_services_spec.rb new file mode 100644 index 000000000..23b8751c5 --- /dev/null +++ b/spec/models/jobs/post_to_services_spec.rb @@ -0,0 +1,14 @@ +require 'spec_helper' + +describe Jobs::PostToServices do + it 'calls post to services from the given user with given post' do + user = make_user + aspect = user.aspects.create(:name => "yeah") + post = user.post(:status_message, :message => 'foo', :to => aspect.id) + User.stub!(:find_by_id).with(user.id.to_s).and_return(user) + user.stub!(:services).and_return([]) + user.should_receive(:post_to_services) + url = "foobar" + Jobs::PostToServices.perform(user.id.to_s, post.id.to_s, url) + end +end diff --git a/spec/models/jobs/socket_webfinger.rb b/spec/models/jobs/socket_webfinger_spec.rb similarity index 94% rename from spec/models/jobs/socket_webfinger.rb rename to spec/models/jobs/socket_webfinger_spec.rb index c6d695f3b..3bfd0cd40 100644 --- a/spec/models/jobs/socket_webfinger.rb +++ b/spec/models/jobs/socket_webfinger_spec.rb @@ -40,7 +40,7 @@ describe Jobs::SocketWebfinger do Webfinger.stub(:new).and_return(finger) finger.stub(:fetch).and_raise(Webfinger::WebfingerFailedError) - opts = {:class => 'people', :status => 'fail', :query => @account, :response => I18n.t('people.webfinger.fail')}.to_json + opts = {:class => 'people', :status => 'fail', :query => @account, :response => I18n.t('people.webfinger.fail', :handle => @account )}.to_json Diaspora::WebSocket.should_receive(:queue_to_user).with(@user.id, opts) Jobs::SocketWebfinger.perform(@user.id, @account)