lib/vines/stanza/presence/subscribed.rb in vines-0.1.1 vs lib/vines/stanza/presence/subscribed.rb in vines-0.2.0

- old
+ new

@@ -11,37 +11,36 @@ end def process_outbound self['from'] = stream.user.jid.bare.to_s to = stamp_to - route unless local? + local? ? process_inbound : route stream.user.add_subscription_from(to) storage.save_user(stream.user) stream.update_user_streams(stream.user) + contact = stream.user.contact(to) router.interested_resources(stream.user.jid).each do |recipient| - send_subscribed_roster_push(recipient, to, stream.user.contact(to).subscription) + contact.send_roster_push(recipient) end presences = router.available_resources(stream.user.jid).map do |c| - doc = Document.new - doc.create_element('presence', - 'from' => c.user.jid.to_s, - 'id' => Kit.uuid, - 'to' => to.to_s) + c.last_broadcast_presence.clone.tap do |node| + node['from'] = c.user.jid.to_s + node['id'] = Kit.uuid + node['to'] = to.to_s + end end if local? router.available_resources(to).each do |recipient| presences.each {|el| recipient.write(el) } end else presences.each {|el| router.route(el) } end - - process_inbound if local? end def process_inbound self['from'] = stream.user.jid.bare.to_s to = stamp_to @@ -53,10 +52,10 @@ storage(to.domain).save_user(user) stream.update_user_streams(user) router.interested_resources(to).each do |recipient| recipient.write(@node) - send_subscribed_roster_push(recipient, stream.user.jid.bare, contact.subscription) + contact.send_roster_push(recipient) end end end end end