Class: Broadcast::Resources::Subscribers
- Defined in:
- lib/broadcast/resources/subscribers.rb
Instance Method Summary collapse
- #activate(email) ⇒ Object
- #add_tags(email, tags) ⇒ Object
-
#create(**attrs) ⇒ Object
Create or upsert a subscriber.
- #deactivate(email) ⇒ Object
- #find(email:) ⇒ Object
- #list(**params) ⇒ Object
- #redact(email) ⇒ Object
- #remove_tags(email, tags) ⇒ Object
- #resubscribe(email) ⇒ Object
- #unsubscribe(email) ⇒ Object
- #update(email, **attrs) ⇒ Object
Methods inherited from Base
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 (email, ) post('/api/v1/subscribers/add_tag.json', { email: email, 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 (email, ) @client.request(:delete, '/api/v1/subscribers/remove_tag.json', { email: email, 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 |