class SBF::Client::NewsletterRecipientEndpoint

Public Instance Methods

subscribe(entity_or_email, first_name = nil, last_name = nil, welcome_email = true) click to toggle source
# 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) click to toggle source
# 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