Class: SBF::Client::NewsletterRecipientEndpoint

Inherits:
EntityEndpoint show all
Defined in:
lib/stbaldricks/endpoints/newsletter_recipient.rb

Instance Attribute Summary

Attributes inherited from EntityEndpoint

#orig_target_class

Instance Method Summary collapse

Methods inherited from EntityEndpoint

#aggregate, #create, #delete, #find, #find_first, #get, #initialize, #save, #update

Constructor Details

This class inherits a constructor from SBF::Client::EntityEndpoint

Instance Method Details

#subscribe(entity_or_email, first_name = nil, last_name = nil, welcome_email = true) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/stbaldricks/endpoints/newsletter_recipient.rb', line 6

def subscribe(entity_or_email, first_name = nil, last_name = nil, welcome_email = true)
  if entity_or_email.is_a?(String) && entity_or_email && first_name && last_name
    entity = target_class.new(email_address: entity_or_email, first_name: first_name, last_name: last_name, welcome_email: welcome_email)
  elsif entity_or_email.is_a?(SBF::Client::BaseEntity)
    entity = entity_or_email
  else
    raise SBF::Client::Error, 'Invalid Entity'
  end

  data = entity.to_hash

  response = SBF::Client::Api::Request.post_request("#{base_uri}/subscribe", data)
  error = SBF::Client::ErrorEntity.new(JSON.parse(response.body).symbolize!) unless ok?(response)

  SBF::Client::Api::Response.new(http_code: response.code, data: nil, error: error)
end

#unsubscribe(entity_or_email) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/stbaldricks/endpoints/newsletter_recipient.rb', line 23

def unsubscribe(entity_or_email)
  if entity_or_email.is_a?(String)
    entity = target_class.new(email_address: entity_or_email)
  elsif entity_or_email.is_a?(SBF::Client::BaseEntity)
    entity = entity_or_email
  else
    raise SBF::Client::Error, 'Invalid Entity'
  end

  data = entity.to_hash

  response = SBF::Client::Api::Request.post_request("#{base_uri}/unsubscribe", data)
  error = SBF::Client::ErrorEntity.new(JSON.parse(response.body).symbolize!) unless ok?(response)

  SBF::Client::Api::Response.new(http_code: response.code, data: nil, error: error)
end