Class: CustomerioRails::Mail::Customerio
- Inherits:
-
Object
- Object
- CustomerioRails::Mail::Customerio
- Defined in:
- lib/customerio-rails/mail.rb
Instance Attribute Summary collapse
-
#settings ⇒ Object
Returns the value of attribute settings.
Instance Method Summary collapse
- #api_client ⇒ Object
- #deliver!(mail) ⇒ Object
-
#initialize(values) ⇒ Customerio
constructor
A new instance of Customerio.
Constructor Details
#initialize(values) ⇒ Customerio
Returns a new instance of Customerio.
8 9 10 11 12 13 |
# File 'lib/customerio-rails/mail.rb', line 8 def initialize(values) self.settings = { region: ENV['CUSTOMERIO_REGION'] || ::Customerio::Regions::US, app_api_key: ENV['CUSTOMERIO_APP_API_KEY'] }.merge(values) end |
Instance Attribute Details
#settings ⇒ Object
Returns the value of attribute settings.
6 7 8 |
# File 'lib/customerio-rails/mail.rb', line 6 def settings @settings end |
Instance Method Details
#api_client ⇒ Object
42 43 44 |
# File 'lib/customerio-rails/mail.rb', line 42 def api_client ::Customerio::APIClient.new(settings[:app_api_key], region: settings[:region]) end |
#deliver!(mail) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/customerio-rails/mail.rb', line 15 def deliver!(mail) (Array.wrap(mail.to) + Array.wrap(mail.cc)).compact.each do |to| params = { to: to, from: Array.wrap(mail[:from]).first.unparsed_value, subject: mail.subject, reply_to: mail.reply_to, bcc: mail.bcc, headers: mail.headers, identifiers: { email: to } } if mail[:transactional_message_id] params[:transactional_message_id] = mail[:transactional_message_id].unparsed_value params[:message_data] = mail[:message_data]&.unparsed_value || {} else params[:body] = mail.html_part.body.to_s if mail.html_part params[:body_plain] = mail.text_part.body.to_s if mail.text_part params[mail.text? ? :body_plain : :body] = mail.body.to_s if !mail.html_part && !mail.text_part end request = ::Customerio::SendEmailRequest.new(params.compact) mail..each do || request.attach(.filename, .read) end api_client.send_email(request) end end |