Class: Integral::NewsletterSignupJob

Inherits:
ApplicationJob show all
Defined in:
app/jobs/integral/newsletter_signup_job.rb

Overview

Carry out actual newsletter signing up process

Instance Method Summary collapse

Instance Method Details

#newsletter_list_idString

Returns The newsletter identifier to sign up to.

Returns:

  • (String)

    The newsletter identifier to sign up to



22
23
24
# File 'app/jobs/integral/newsletter_signup_job.rb', line 22

def newsletter_list_id(*)
  Settings.newsletter_list_id
end

#perform(signup) ⇒ Object

Attempts to signup an email to newsletter



10
11
12
13
14
15
16
17
18
19
# File 'app/jobs/integral/newsletter_signup_job.rb', line 10

def perform()
  return unless NewsletterSignup.api_available?

  gibbon = Gibbon::Request.new(api_key: Settings.newsletter_api_key)
  request_body = { email_address: .email, status: 'subscribed' }
  gibbon.lists(newsletter_list_id()).members.create(body: request_body)

  # Update signup when the response is successful (in this case - if no error returned)
  .update_attribute(:processed, true)
end