Class: SocketLabs::InjectionApi::Message::MessageBase

Inherits:
Object
  • Object
show all
Defined in:
lib/socketlabs/injectionapi/message/message_base.rb

Direct Known Subclasses

BasicMessage, BulkMessage

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(arguments = nil) ⇒ MessageBase

Returns a new instance of MessageBase.



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 33

def initialize(arguments = nil)

  unless arguments.nil? || arguments.empty?

    unless arguments[:subject].nil? || arguments[:subject].empty?
      @subject = arguments[:subject]
    end

    unless arguments[:plain_text_body].nil? || arguments[:plain_text_body].empty?
      @plain_text_body = arguments[:plain_text_body]
    end

    unless arguments[:html_body].nil? || arguments[:html_body].empty?
      @html_body = arguments[:html_body]
    end

    unless arguments[:amp_body].nil? || arguments[:amp_body].empty?
      @amp_body = arguments[:amp_body]
    end

    unless arguments[:api_template].nil? || arguments[:api_template].empty?
      @api_template = arguments[:api_template]
    end

    unless arguments[:mailing_id].nil? || arguments[:mailing_id].empty?
      @mailing_id = arguments[:mailing_id]
    end

    unless arguments[:message_id].nil? || arguments[:message_id].empty?
      @message_id = arguments[:message_id]
    end

    unless arguments[:charset].nil? || arguments[:charset].empty?
      @charset = arguments[:charset]
    end

    unless arguments[:charset].nil? || arguments[:charset].empty?
      @charset = arguments[:charset]
    end

  end

  @from_email_address = nil
  @reply_to_email_address = nil

  @attachments = Array.new
  @custom_headers = Array.new

end

Instance Attribute Details

#amp_bodyObject

the AMP portion of the message body. (Optional) Either TextBody or HtmlBody must be used with the AmpBody or use a ApiTemplate



18
19
20
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 18

def amp_body
  @amp_body
end

#api_templateObject

the Api Template for the message. (Optional) Either TextBody or HtmlBody must be used with the AmpBody or use a ApiTemplate



21
22
23
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 21

def api_template
  @api_template
end

#charsetObject

the optional character set. Default is UTF-8



31
32
33
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 31

def charset
  @charset
end

#html_bodyObject

the HTML portion of the message body. (Optional) Either TextBody or HtmlBody must be used with the AmpBody or use a ApiTemplate



15
16
17
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 15

def html_body
  @html_body
end

#mailing_idObject

the custom MailingId for the message. See www.injectionapi.com/blog/best-practices-for-using-custom-mailingids-and-messageids/ for more information.



25
26
27
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 25

def mailing_id
  @mailing_id
end

#message_idObject

the custom MessageId for the message. See www.injectionapi.com/blog/best-practices-for-using-custom-mailingids-and-messageids/ for more information.



29
30
31
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 29

def message_id
  @message_id
end

#plain_text_bodyObject

the plain text portion of the message body. (Optional) Either TextBody or HtmlBody must be used with the AmpBody or use a ApiTemplate



12
13
14
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 12

def plain_text_body
  @plain_text_body
end

#subjectObject

the message Subject.



9
10
11
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 9

def subject
  @subject
end

Instance Method Details

#add_attachment(value) ⇒ Object

Add an attachment to the attachments list.



135
136
137
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 135

def add_attachment(value)
  @attachments.push(value)
end

#add_custom_header(header, value = nil) ⇒ Object

Add a CustomHeader to the message.

Parameters:

  • name (String/CustomHeader)
  • value (String) (defaults to: nil)


159
160
161
162
163
164
165
166
167
168
169
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 159

def add_custom_header(header, value = nil)

  if header.kind_of? CustomHeader
    @custom_headers.push(header)

  elsif header.kind_of? String
    @custom_headers.push(CustomHeader.new(header, value))

  end

end

#attachmentsObject

Get the list of attachments.



118
119
120
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 118

def attachments
  @attachments
end

#attachments=(value) ⇒ Object

Set the list of attachments.



122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 122

def attachments=(value)
  @attachments = Array.new
  unless value.nil? || value.empty?
    value.each do |v1|
      if v1.instance_of? Attachment
        @attachments.push(v1)
      else
        raise StandardError("Invalid type for attachments, type of 'Attachment' was expected")
      end
    end
  end
end

#custom_headersObject

Get the list of custom message headers added to the message.



140
141
142
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 140

def custom_headers
  @custom_headers
end

#custom_headers=(value) ⇒ Object

Set the list of custom message headers added to the message.



144
145
146
147
148
149
150
151
152
153
154
155
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 144

def custom_headers=(value)
  @custom_headers = Array.new
  unless value.nil? || value.empty?
    value.each do |v1|
      if v1.instance_of? CustomHeader
        @custom_headers.push(v1)
      else
        raise StandardError("Invalid type for custom_headers, type of 'CustomHeader' was expected")
      end
    end
  end
end

#from_email_addressObject

Get the From email address.



84
85
86
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 84

def from_email_address
  @from_email_address
end

#from_email_address=(value) ⇒ Object

Set the From email address.



88
89
90
91
92
93
94
95
96
97
98
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 88

def from_email_address=(value)
  unless value.nil?
    if value.kind_of? EmailAddress
      @from_email_address = value
    elsif value.kind_of? String
      @from_email_address = EmailAddress.new(value)
    else
      raise StandardError("Invalid type for reply_to_email_address, type of 'EmailAddress' or 'String' was expected")
    end
  end
end

#reply_to_email_addressObject

Get the optional reply to email address for the message.



101
102
103
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 101

def reply_to_email_address
  @reply_to_email_address
end

#reply_to_email_address=(value) ⇒ Object

Set the optional reply to address for the message.



105
106
107
108
109
110
111
112
113
114
115
# File 'lib/socketlabs/injectionapi/message/message_base.rb', line 105

def reply_to_email_address=(value)
  unless value.nil?
    if value.kind_of?(EmailAddress)
      @reply_to_email_address = value
    elsif value.kind_of? String
      @from_email_address = EmailAddress.new(value)
    else
      raise StandardError("Invalid type for reply_to_email_address, type of 'EmailAddress' or 'String' was expected")
    end
  end
end