class Messagemedia::SOAP::Message

This class is a light-weight wrapper around the message structure used by the MessageMedia SOAP Client interface.

Attributes

content[RW]
delivery_report[RW]
format[RW]
origin[RW]
recipients[RW]
sequence_number[RW]
validity_period[RW]

Public Class Methods

new() click to toggle source

Initialize an empty Message object

By default, delivery reports will be enabled, the validity period will be set to 10 minutes, and the message will be sent as an SMS.

# File lib/messagemedia/soap/message.rb, line 22
def initialize
  @recipients = []
  @delivery_report = true
  @validity_period = 1
  @sequence_number = 0
  @format = FORMAT_SMS
end

Public Instance Methods

add_recipient(message_id, recipient) click to toggle source

Add a recipient.

An optional message ID (message_id) may be provided. This allows for the correlation of replies and delivery reports with messages that have been sent.

A recipient number (recipient) must be provided.

# File lib/messagemedia/soap/message.rb, line 39
def add_recipient(message_id, recipient)
  @recipients.push(Recipient.new(message_id, recipient))
end
to_api_hash() click to toggle source

Return a hash that can be passed to the Savon SOAP library to represent a message.

# File lib/messagemedia/soap/message.rb, line 47
def to_api_hash
  hash = {
      :'api:content' => @content,
      :'api:recipients' => {
          :'api:recipient' => @recipients.map { |r| r.destination_number },
          :attributes! => {
              :'api:recipient' => {
                  :uid => @recipients.map { |r| r.message_id }
              }
          }
      }
  }

  unless @format.nil?
    hash[:'@format'] = @format
  end
  unless @sequence_number.nil?
    hash[:'@sequenceNumber'] = @sequence_number
  end
  unless @delivery_report.nil?
    hash[:'api:deliveryReport'] = @delivery_report
  end
  unless @validity_period.nil?
    hash[:'api:validityPeriod'] = @validity_period
  end
  unless @origin.nil?
    hash[:'api:origin'] = @origin
  end

  hash
end