Class: Broadcast::Resources::Transactionals

Inherits:
Base
  • Object
show all
Defined in:
lib/broadcast/resources/transactionals.rb

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from Broadcast::Resources::Base

Instance Method Details

#create(to:, subject: nil, body: nil, reply_to: nil, preheader: nil, template_id: nil, include_unsubscribe_link: nil, double_opt_in: nil, confirmation_template_id: nil, subscriber: nil, **extra) ⇒ Object

Send a transactional email.

Required:

to:      recipient email address

One of subject/body or template_id is required (template_id resolves subject and body server-side; subject/body override the template).

Optional:

subject:, body:, preheader:
reply_to:
template_id:                 resolve subject/body/preheader from a Template
include_unsubscribe_link:    boolean
double_opt_in:               true | { reply_to:, confirmation_template_id:, include_unsubscribe_link: }
                             Holds the email until the recipient confirms.
confirmation_template_id:    custom confirmation template (used with double_opt_in: true)
subscriber:                  { first_name:, last_name: } — populates Subscriber on first send

rubocop:disable Metrics/ParameterLists – mirrors the API’s flat param surface



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/broadcast/resources/transactionals.rb', line 24

def create(to:, subject: nil, body: nil, reply_to: nil, preheader: nil,
           template_id: nil, include_unsubscribe_link: nil,
           double_opt_in: nil, confirmation_template_id: nil,
           subscriber: nil, **extra)
  # rubocop:enable Metrics/ParameterLists
  payload = { to: to }
  payload[:subject] = subject unless subject.nil?
  payload[:body] = body unless body.nil?
  payload[:preheader] = preheader unless preheader.nil?
  payload[:reply_to] = reply_to unless reply_to.nil?
  payload[:template_id] = template_id unless template_id.nil?
  payload[:include_unsubscribe_link] = include_unsubscribe_link unless include_unsubscribe_link.nil?
  payload[:double_opt_in] = double_opt_in unless double_opt_in.nil?
  payload[:confirmation_template_id] = confirmation_template_id unless confirmation_template_id.nil?
  payload[:subscriber] = subscriber unless subscriber.nil?
  payload.merge!(extra) unless extra.empty?

  post('/api/v1/transactionals.json', payload)
end

#get_transactional(id) ⇒ Object



44
45
46
# File 'lib/broadcast/resources/transactionals.rb', line 44

def get_transactional(id)
  get("/api/v1/transactionals/#{id}.json")
end