Class: SpreeKlaviyo::FetchProfileJob

Inherits:
BaseJob
  • Object
show all
Defined in:
app/jobs/spree_klaviyo/fetch_profile_job.rb

Constant Summary collapse

NoProfileFoundError =
Class.new(StandardError)

Instance Method Summary collapse

Instance Method Details

#perform(klaviyo_integration_id, user_id) ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'app/jobs/spree_klaviyo/fetch_profile_job.rb', line 5

def perform(klaviyo_integration_id, user_id)
  klaviyo_integration = ::Spree::Integrations::Klaviyo.find(klaviyo_integration_id)
  user = ::Spree.user_class.find(user_id)

  result = SpreeKlaviyo::FetchProfile.call(klaviyo_integration: klaviyo_integration, user: user)

  # Due to race condition let's give Klaviyo some time to create profile
  raise NoProfileFoundError if result.error == ::Spree::Integrations::Klaviyo::NO_PROFILE_FOUND
end