class Osm::Email::DeliveryReport::Email

Constants

SORT_BY

Protected Class Methods

fetch_from_osm(api, section_id, email_id, member_id=nil, email_address='') click to toggle source

Get email contents @param [Osm::Api] api The api to use to make the request @param [Integer] section_id @param [Integer] email_id @param [String] email_address @return [Osm::Email::DeliveryReport::Email]

# File lib/osm/email.rb, line 366
def self.fetch_from_osm(api, section_id, email_id, member_id=nil, email_address='')
  Osm::Model.require_access_to_section(api, section_id)

  data = api.perform_query("ext/settings/emails/?action=getSentEmail&section_id=#{section_id}&email_id=#{email_id}&email=#{email_address}&member_id=#{member_id}")
  fail Osm::Error, "Unexpected format for response - got a #{data.class}" unless data.is_a?(Hash)
  fail Osm::Error, data['error'].to_s unless data['status']
  fail Osm::Error, "Unexpected format for meta data - got a #{data.class}" unless data['data'].is_a?(Hash)

  body = api.perform_query("ext/settings/emails/?action=getSentEmailContent&section_id=#{section_id}&email_id=#{email_id}&email=#{email_address}&member_id=#{member_id}", {}, true)
  fail Osm::Error, data if data.eql?('Email not found')

  email_data = data['data']
  new(
    to:       email_data['to'],
    from:     email_data['from'],
    subject:  email_data['subject'],
    body:     body,
  )
end

Public Instance Methods

to_s() click to toggle source

@!method initialize

Initialize a new DeliveryReport::Email
@param [Hash] attributes The hash of attributes (see attributes for descriptions, use Symbol of attribute name as the key)
# File lib/osm/email.rb, line 355
def to_s
  "To: #{to}\nFrom: #{from}\n\n#{subject}\n\n#{body.gsub(/<\/?[^>]*>/, '')}"
end