Class: Broadcast::Resources::Subscribers

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

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

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

Instance Method Details

#activate(email) ⇒ Object



52
53
54
# File 'lib/broadcast/resources/subscribers.rb', line 52

def activate(email)
  post('/api/v1/subscribers/activate.json', { email: email })
end

#add_tags(email, tags) ⇒ Object



40
41
42
# File 'lib/broadcast/resources/subscribers.rb', line 40

def add_tags(email, tags)
  post('/api/v1/subscribers/add_tag.json', { email: email, tags: tags })
end

#create(**attrs) ⇒ Object

Create or upsert a subscriber.

Subscriber attributes (wrapped under ‘subscriber:` on the wire):

email:, first_name:, last_name:, is_active:, source:,
subscribed_at:, ip_address:, tags: [...], custom_data: {...}

Top-level options (NOT wrapped under ‘subscriber:`):

double_opt_in:               true | { reply_to:, confirmation_template_id:, include_unsubscribe_link: }
                             When set, the subscriber is created in unconfirmed state
                             and a confirmation email is queued.
confirmation_template_id:    custom confirmation template (used with double_opt_in: true)


25
26
27
28
29
30
31
32
33
34
# File 'lib/broadcast/resources/subscribers.rb', line 25

def create(**attrs)
  double_opt_in = attrs.delete(:double_opt_in)
  confirmation_template_id = attrs.delete(:confirmation_template_id)

  payload = { subscriber: attrs }
  payload[:double_opt_in] = double_opt_in unless double_opt_in.nil?
  payload[:confirmation_template_id] = confirmation_template_id unless confirmation_template_id.nil?

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

#deactivate(email) ⇒ Object



48
49
50
# File 'lib/broadcast/resources/subscribers.rb', line 48

def deactivate(email)
  post('/api/v1/subscribers/deactivate.json', { email: email })
end

#find(email:) ⇒ Object



10
11
12
# File 'lib/broadcast/resources/subscribers.rb', line 10

def find(email:)
  get('/api/v1/subscribers/find.json', { email: email })
end

#list(**params) ⇒ Object



6
7
8
# File 'lib/broadcast/resources/subscribers.rb', line 6

def list(**params)
  get('/api/v1/subscribers.json', params)
end

#redact(email) ⇒ Object



64
65
66
# File 'lib/broadcast/resources/subscribers.rb', line 64

def redact(email)
  post('/api/v1/subscribers/redact.json', { email: email })
end

#remove_tags(email, tags) ⇒ Object



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

def remove_tags(email, tags)
  @client.request(:delete, '/api/v1/subscribers/remove_tag.json', { email: email, tags: tags })
end

#resubscribe(email) ⇒ Object



60
61
62
# File 'lib/broadcast/resources/subscribers.rb', line 60

def resubscribe(email)
  post('/api/v1/subscribers/resubscribe.json', { email: email })
end

#unsubscribe(email) ⇒ Object



56
57
58
# File 'lib/broadcast/resources/subscribers.rb', line 56

def unsubscribe(email)
  post('/api/v1/subscribers/unsubscribe.json', { email: email })
end

#update(email, **attrs) ⇒ Object



36
37
38
# File 'lib/broadcast/resources/subscribers.rb', line 36

def update(email, **attrs)
  patch('/api/v1/subscribers.json', { email: email, subscriber: attrs })
end