lib/urbanairship/devices/email_notification.rb in urbanairship-5.5.1 vs lib/urbanairship/devices/email_notification.rb in urbanairship-5.6.0

- old
+ new

@@ -14,85 +14,71 @@ :reply_to, :sender_address, :sender_name, :subject, :template_id, - :variable_details + :variable_details, + :click_tracking, + :open_tracking def initialize(client: required('client')) @client = client - @bcc = nil - @bypass_opt_in_level = nil - @html_body = nil - @message_type = nil - @plaintext_body = nil - @reply_to = nil - @sender_address = nil - @sender_name = nil - @subject = nil - @template_id = nil - @variable_details = nil end 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 = {'email': { - 'bypass_opt_in_level': @bypass_opt_in_level, - 'html_body': @html_body, - 'message_type': @message_type, - 'plaintext_body': @plaintext_body, - 'reply_to': @reply_to, - 'sender_address': @sender_address, - 'sender_name': @sender_name, - 'subject': @subject - }} + 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 - if @bcc - override[:email][:bcc] = @bcc - end - - override + {'email': override} end 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 = {'email': { - 'message_type': @message_type, - 'reply_to': @reply_to, - 'sender_address': @sender_address, - 'sender_name': @sender_name, - 'template': {} - } - } + 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 - if @subject and @plaintext_body - fields_object = {'plaintext_body': @plaintext_body, 'subject': @subject} - inline_template[:email][:template][:fields] = fields_object - end + {'email': inline_template} + end - if @bcc - inline_template[:email][:bcc] = @bcc - end - - if @variable_details - inline_template[:email][:template][:variable_details] = @variable_details - end - - if @template_id - inline_template[:email][:template][:template_id] = @template_id - end - - inline_template + def define_template_object + template_portion = { + template_id: template_id, + fields: { + subject: subject, + plaintext_body: plaintext_body + }, + variable_details: variable_details + }.delete_if {|key, value| value.nil?} end end end end