class TsigApi::Message
Public Instance Methods
create(options={:broadcast_type => nil, :date_sent => nil, :send_now => nil, :message => nil, :has_contacts => nil, :has_teams => nil})
click to toggle source
# File lib/tsig_api/message.rb, line 8 def create(options={:broadcast_type => nil, :date_sent => nil, :send_now => nil, :message => nil, :has_contacts => nil, :has_teams => nil}) date_sent = (options[:date_sent] || options[:send_at]) date_sent = parse_date(date_sent) if date_sent sndnow = %w(1 true).include?(options[:send_now].to_s) xml = <<-EOS <param name='group'><![CDATA[#{group_id}]]></param> <param name='broadcast_type'>#{options[:broadcast_type]}</param> <param name='send_at'>#{date_sent}</param> <param name='send_now'>#{sndnow}</param> <param name='message'><![CDATA[#{options[:message]}]]></param> EOS if options[:has_contacts] has_contact_xml = "<param name='has_contacts'>" options[:has_contacts].each do |at| has_contact_xml += "<contact>#{at}</contact>" end has_contact_xml += "</param>" xml += has_contact_xml end if options[:has_teams] has_team_xml = "<param name='has_teams'>" options[:has_teams].each do |at| has_team_xml += "<team><![CDATA[#{at}]]></team>" end has_team_xml += "</param>" xml += has_team_xml end TsigApi::RemoteActions::Request.new(:body => request_xml(:create, xml)) end
delete(message_id)
click to toggle source
# File lib/tsig_api/message.rb, line 94 def delete(message_id) xml = " <param name='group'>#{group_id}</param> <param name='message_id'>#{message_id}</param> " TsigApi::RemoteActions::Request.new(:body => request_xml(:delete, xml)) end
query(options={:broadcast_type => nil, :date_sent => nil, :send_now => nil, :message => nil, :sent_before => nil, :sent_after => nil, :message_id => nil, :message_by_team => nil })
click to toggle source
# File lib/tsig_api/message.rb, line 40 def query(options={:broadcast_type => nil, :date_sent => nil, :send_now => nil, :message => nil, :sent_before => nil, :sent_after => nil, :message_id => nil, :message_by_team => nil }) xml = "<param name='group'>#{group_id}</param>" if options[:message_id] xml += "<param name='message_id'>#{options[:message_id]}</param>" else if options[:send_now] sndnow = 0 sndnow = 1 if options[:send_now] end options[:send_now] = sndnow options[:date_sent] = parse_date(options[:date_sent]) if options[:date_sent] options[:sent_after] = parse_date(options[:sent_after]) if options[:sent_after] options[:sent_before] = parse_date(options[:sent_before]) if options[:sent_before] use_options = options.reject { |o, k| o == :message } use_options.each do |arg, val| xml += "<param name='#{arg.to_s}'>#{val}</param>" if val end if options[:message] xml += "<param name='message'><![CDATA[#{option[:message]}]]></param>" end end TsigApi::RemoteActions::Request.new(:body => request_xml(:query, xml)) end
update(message_id, options={:broadcast_type => nil, :date_sent => nil, :send_now => nil, :message => nil, :has_contacts => nil, :has_teams => nil})
click to toggle source
# File lib/tsig_api/message.rb, line 64 def update(message_id, options={:broadcast_type => nil, :date_sent => nil, :send_now => nil, :message => nil, :has_contacts => nil, :has_teams => nil}) xml = "<param name='group'>#{group_id}</param>" xml += "<param name='message_id'>#{message_id}</param>" sndnow = 0 sndnow = 1 if options[:send_now] options[:send_now] = sndnow options[:date_sent] = parse_date(options[:date_sent]) if options[:date_sent] [:broadcast_type, :date_sent, :send_now].each do |arg| xml += "<param name='#{arg}'>#{options[arg]}</param>" if options[arg] end xml += "<param name='message'><![CDATA[#{options[:message]}]]></param>" if options[:message] if options[:has_contacts] has_contact_xml = "<param name='has_contacts'>" options[:has_contacts].each do |at| has_contact_xml += "<contact>#{at}</contact>" end has_contact_xml += "</param>" xml += has_contact_xml end if options[:has_teams] has_team_xml = "<param name='has_teams'>" options[:has_teams].each do |at| has_team_xml += "<team>#{at}</team>" end has_team_xml += "</param>" xml += has_team_xml end TsigApi::RemoteActions::Request.new(:body => request_xml(:update, xml)) end
Private Instance Methods
parse_date(d)
click to toggle source
# File lib/tsig_api/message.rb, line 104 def parse_date(d) if not d.is_a?(String) begin d = d.strftime("%m/%d/%Y %H:%M %p") rescue raise "Date for message to be sent must be a string in MM-DD-YYYY HH:MM [am/pm] or a DateTime object" end end d end