MS small pointless webhooks refactor

This commit is contained in:
maxwell 2010-07-24 16:11:32 -07:00
parent 416f128ba8
commit b797704a14
5 changed files with 12 additions and 17 deletions

View file

@ -1,7 +1,6 @@
class Post
require 'lib/diaspora/webhooks'
include ApplicationHelper
include MongoMapper::Document
include ApplicationHelper
include ROXML
include Diaspora::Webhooks
include Encryptable

View file

@ -2,8 +2,7 @@ module Diaspora
module Webhooks
def self.included(klass)
klass.class_eval do
include ROXML
require 'message_handler'
#require 'message_handler'
@@queue = MessageHandler.new
def notify_people
@ -24,10 +23,9 @@ module Diaspora
def push_to(recipients)
@@queue.add_hub_notification(APP_CONFIG[:pubsub_server], User.owner.url + self.class.to_s.pluralize.underscore + '.atom')
unless recipients.empty?
recipients.map!{|x| x = x.url + "receive/"}
xml = self.class.build_xml_for([self])
xml = self.class.build_xml_for(self)
Rails.logger.info("Adding xml for #{self} to message queue to #{recipients}")
@@queue.add_post_request( recipients, xml )
end
@ -36,13 +34,13 @@ module Diaspora
def push_to_url(url)
hook_url = url + "receive/"
xml = self.class.build_xml_for([self])
xml = self.class.build_xml_for(self)
Rails.logger.info("Adding xml for #{self} to message queue to #{url}")
@@queue.add_post_request( [hook_url], xml )
@@queue.add_post_request( hook_url, xml )
@@queue.process
end
def prep_webhook
def to_diaspora_xml
"<post>#{self.to_xml.to_s}</post>"
end
@ -53,7 +51,7 @@ module Diaspora
def self.build_xml_for(posts)
xml = "<XML>"
xml += "\n <posts>"
posts.each {|x| xml << x.prep_webhook}
[*posts].each {|x| xml << x.to_diaspora_xml}
xml += "</posts>"
xml += "</XML>"
end

View file

@ -9,7 +9,7 @@ class MessageHandler
end
def add_get_request(destinations)
destinations.each{ |dest| @queue.push(Message.new(:get, dest))}
[*destinations].each{ |dest| @queue.push(Message.new(:get, dest))}
end
def add_subscription_request(feed_url)
@ -18,7 +18,7 @@ class MessageHandler
def add_post_request(destinations, body)
b = CGI::escape( body )
destinations.each{|dest| @queue.push(Message.new(:post, dest, :body => b))}
[*destinations].each{|dest| @queue.push(Message.new(:post, dest, :body => b))}
end
# pubsubhubbub

View file

@ -26,8 +26,6 @@ describe Diaspora::OStatus do
sm_entry.should include(@status_message.message)
sm_entry.should include('title')
end
end
end
end

View file

@ -17,12 +17,12 @@ describe Diaspora do
it "should add the following methods to Post on inclusion" do
@post.respond_to?(:notify_people).should be true
@post.respond_to?(:prep_webhook).should be true
@post.respond_to?(:to_diaspora_xml).should be true
@post.respond_to?(:people_with_permissions).should be true
end
it "should convert an object to a proper webhook" do
@post.prep_webhook.should == "<post>#{@post.to_xml.to_s}</post>"
it "should convert an object to a proper diaspora entry" do
@post.to_diaspora_xml.should == "<post>#{@post.to_xml.to_s}</post>"
end
it "should retrieve all valid person endpoints" do