Module: SendgridContactPersist

Defined in:
lib/sendgrid_contact_persist.rb,
lib/sendgrid_contact_persist/engine.rb,
lib/sendgrid_contact_persist/version.rb

Defined Under Namespace

Classes: Engine, Railties

Constant Summary collapse

VERSION =
"0.0.1"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.loggerObject

Returns the value of attribute logger.



5
6
7
# File 'lib/sendgrid_contact_persist.rb', line 5

def logger
  @logger
end

Class Method Details

.persist(emails, custom_attrs = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/sendgrid_contact_persist.rb', line 7

def persist(emails, custom_attrs = {})
  return nil unless api_key = ENV['SENDGRID_API_KEY']

  headers = {'Authorization' => "Bearer #{api_key}"}
  emails = [emails] unless emails.kind_of?(Array)
  data = []
  emails.each do |email|
    data << {email: email}.merge(custom_attrs)
  end

  resp = RestClient.post 'https://api.sendgrid.com/v3/contactdb/recipients', data.to_json, headers
  SendgridContactPersist.logger.info "Contact(s) added to Sendgrid: #{emails}"
  resp
end