24b129a9 |
module MessageBuilder
def self.build_multi_messages(message, from, attendants, chat_id)
attendants.map do |person| |
281ee787 |
new_message = Jabber::Message.new(person, message)
new_message.from = from
new_message.add_attribute('chat_id', chat_id)
new_message |
24b129a9 |
end
end
def self.build_message(message, from, to)
message = Jabber::Message.new(to, message)
message.from = from
message
end
def self.ask_for_multichat_contacts(from, to, chat_id)
message = Jabber::Message.new(to)
message.from = from
sync_request = REXML::Element.new('sync_contacts_request')
sync_request.add_attributes('chat_id' => chat_id)
message.add_element sync_request
message
end
def self.send_multichat_contacts(from, to, chat_id, contacts)
message = Jabber::Message.new(to)
message.from = from
sync_answer = REXML::Element.new('synced_contacts')
collect_contacts(sync_answer, contacts)
sync_answer.add_attributes('chat_id' => chat_id)
message.add_element sync_answer
message
end
def self.export_multichat(from, to, chat_id, contacts)
message = Jabber::Message.new(to)
message.from = from
chat = REXML::Element.new('exported_chat')
collect_contacts(chat, contacts)
chat.add_attributes('chat_id' => chat_id)
message.add_element chat
message
end
|
7a817e66 |
def self.control_answer(from, to)
message = Jabber::Message.new(to)
message.from = from
message.add_attributes('i_am_using_same_app' => 'true')
message
end
def self.control_question(from, to)
message = Jabber::Message.new(to)
message.from = from
message.add_attributes('are_you_using_my_app' => '?')
message
end
|
aa2c1028 |
def self.req_update_multichat_contacts(from, to, chat_id, changes)
message = Jabber::Message.new(to)
message.from = from
message.add_attributes('req_update_contacts' => 'true')
message.add_attributes('chat_id' => chat_id)
added = REXML::Element.new('added')
removed = REXML::Element.new('removed')
collect_contacts(added, changes[:added])
collect_contacts(removed, changes[:removed])
message.add_element added
message.add_element removed
message
end
|
88c1de39 |
def self.kick_from_multichat(from, to, chat_id) |
aa2c1028 |
message = Jabber::Message.new(to)
message.from = from
message.add_attributes('destroy_multichat' => 'true')
message.add_attributes('chat_id' => chat_id)
message
end
|
24b129a9 |
private
def self.collect_contacts(to_element, contacts) |
aa2c1028 |
if contacts.kind_of?(Array)
contacts.each do |contact|
contact_xml = REXML::Element.new('contact')
contact_xml.text = contact
to_element.add_element contact_xml
end |
24b129a9 |
end
end
end |