Class: SpreeKlaviyo::Subscribe

Inherits:
Base
  • Object
show all
Includes:
Spree::ServiceModule::Base
Defined in:
app/services/spree_klaviyo/subscribe.rb

Instance Method Summary collapse

Instance Method Details

#call(klaviyo_integration:, email:, user: nil) ⇒ Object



5
6
7
8
9
10
11
# File 'app/services/spree_klaviyo/subscribe.rb', line 5

def call(klaviyo_integration:, email:, user: nil)
  return failure(false, ::Spree.t('admin.integrations.klaviyo.not_found')) unless klaviyo_integration

  klaviyo_integration.subscribe_user(email).tap do |result|
    user.update(klaviyo_subscribed: true) if result.success? && user && !user.klaviyo_subscribed?
  end
end