class Urbanairship::Devices::EmailNotification

Attributes

bcc[RW]
bypass_opt_in_level[RW]
click_tracking[RW]
html_body[RW]
message_type[RW]
open_tracking[RW]
plaintext_body[RW]
reply_to[RW]
sender_address[RW]
sender_name[RW]
subject[RW]
template_id[RW]
variable_details[RW]

Public Class Methods

new(client: required('client')) click to toggle source
# File lib/urbanairship/devices/email_notification.rb, line 23
def initialize(client: required('client'))
  @client = client
end

Public Instance Methods

define_fields() click to toggle source
# File lib/urbanairship/devices/email_notification.rb, line 81
def define_fields
  if subject && plaintext_body
    {
      subject: subject,
      plaintext_body: plaintext_body
    }
  end
end
define_template_object() click to toggle source
# File lib/urbanairship/devices/email_notification.rb, line 72
def define_template_object
  fail ArgumentError, 'Must choose between template_id or fields object' if template_id && plaintext_body && subject
  template_portion = {
    template_id: template_id,
    fields: define_fields,
    variable_details: variable_details
  }.delete_if {|key, value| value.nil?}
end
email_override() click to toggle source
# File lib/urbanairship/devices/email_notification.rb, line 27
def email_override
  fail ArgumentError, 'message_type is needed for email override' if @message_type.nil?
  fail ArgumentError, 'plaintext_body is needed for email override' if @plaintext_body.nil?
  fail ArgumentError, 'reply_to is needed for email override' if @reply_to.nil?
  fail ArgumentError, 'sender_address is needed for email override' if @sender_address.nil?
  fail ArgumentError, 'sender_name is needed for email override' if @sender_name.nil?
  fail ArgumentError, 'subject is needed for email override' if @subject.nil?

  override = {
    bcc: bcc,
    bypass_opt_in_level: bypass_opt_in_level,
    click_tracking: click_tracking,
    html_body: html_body,
    message_type: message_type,
    open_tracking: open_tracking, 
    plaintext_body: plaintext_body,
    reply_to: reply_to,
    sender_address: sender_address,
    sender_name: sender_name,
    subject: subject
  }.delete_if {|key, value| value.nil?} #this removes the nil key value pairs

  {'email': override}
end
email_with_inline_template() click to toggle source
# File lib/urbanairship/devices/email_notification.rb, line 52
def email_with_inline_template
  fail ArgumentError, 'message_type is needed for email with inline template' if @message_type.nil?
  fail ArgumentError, 'reply_to is needed for email with inline template' if @reply_to.nil?
  fail ArgumentError, 'sender_address is needed for email with inline template' if @sender_address.nil?
  fail ArgumentError, 'sender_name is needed for email with inline template' if @sender_name.nil?

  inline_template = {
    bcc: bcc,
    click_tracking: click_tracking,
    message_type: message_type,
    open_tracking: open_tracking,
    reply_to: reply_to,
    sender_address: sender_address,
    sender_name: sender_name,
    template: define_template_object
  }.delete_if {|key, value| value.nil?} #this removes the nil key value pairs

  {'email': inline_template}
end