class Vines::Stanza::Iq::Vcard
Constants
- NS
Public Instance Methods
process()
click to toggle source
# File lib/vines/stanza/iq/vcard.rb, line 11 def process return unless allowed? if local? get? ? vcard_query : vcard_update else self['from'] = stream.user.jid.to_s route end end
Private Instance Methods
vcard_query()
click to toggle source
# File lib/vines/stanza/iq/vcard.rb, line 23 def vcard_query to = validate_to jid = to ? to.bare : stream.user.jid.bare card = storage(jid.domain).find_vcard(jid) raise StanzaErrors::ItemNotFound.new(self, 'cancel') unless card doc = Document.new result = doc.create_element('iq') do |node| node['from'] = jid.to_s unless jid == stream.user.jid.bare node['id'] = self['id'] node['to'] = stream.user.jid.to_s node['type'] = 'result' node << card end stream.write(result) end
vcard_update()
click to toggle source
# File lib/vines/stanza/iq/vcard.rb, line 41 def vcard_update to = validate_to unless to.nil? || to == stream.user.jid.bare raise StanzaErrors::Forbidden.new(self, 'auth') end storage.save_vcard(stream.user.jid, elements.first) result = to_result result.remove_attribute('from') stream.write(result) end