class Sendgrid::API::Newsletter::Emails::Services

Public Instance Methods

add(list, emails) click to toggle source

Add one or more emails to a Recipient List.

@see sendgrid.com/docs/API_Reference/Marketing_Emails_API/emails.html#-add @param list [String, Entities::List] A list name or Entities::List object. @param emails [Array<Entities::Email>] A list of emails to be added. Limited to a 1000 entries maximum. @return [Entities::ResponseInsert] An Entities::ResponseInsert object.

# File lib/sendgrid/api/newsletter/emails.rb, line 25
def add(list, emails)
  params = { :list => extract_listname(list), :data => map_emails(emails, :to_json) }
  perform_request(Entities::ResponseInsert, 'newsletter/lists/email/add.json', params)
end
delete(list, emails) click to toggle source

Remove one or more emails from a Recipient List.

@see sendgrid.com/docs/API_Reference/Marketing_Emails_API/emails.html#-delete @param list [String, Entities::List] A list name or Entities::List object. @param emails [Entities::Email, Array<Entities::Email>] An email or list of emails to be removed. @return [Entities::ResponseRemove] An Entities::ResponseRemove object.

# File lib/sendgrid/api/newsletter/emails.rb, line 48
def delete(list, emails)
  params = { :list => extract_listname(list), :email => map_emails(emails, :email) }
  perform_request(Entities::ResponseRemove, 'newsletter/lists/email/delete.json', params)
end
get(list, emails = nil) click to toggle source

Get the email addresses and associated fields for a Recipient List.

@see sendgrid.com/docs/API_Reference/Marketing_Emails_API/emails.html#-get @param list [String, Entities::List] A list name or Entities::List object. @param emails [Entities::Email, Array<Entities::Email>] An email or list of emails to be searched and retrieved. Optional. @return [Array<Entities::Email>] An array of Entities::Email object.

# File lib/sendgrid/api/newsletter/emails.rb, line 36
def get(list, emails = nil)
  params = { :list => extract_listname(list) }
  params[:email] = map_emails(emails, :email) if emails
  perform_request(Entities::Email, 'newsletter/lists/email/get.json', params)
end

Private Instance Methods

map_emails(emails, to) click to toggle source

Return a mapping from an email method name.

@param emails [Entities::Email, Array<Entities::Email>] An email or list of emails. @param to [Symbol] The email method name to be mapped. @return [Array] An array of the mapping.

# File lib/sendgrid/api/newsletter/emails.rb, line 60
def map_emails(emails, to)
  emails = [emails] unless emails.is_a?(Array)
  emails.map(&to)
end