Class: Spree::Newsletter::Subscribe
- Inherits:
-
Object
- Object
- Spree::Newsletter::Subscribe
- Defined in:
- app/services/spree/newsletter/subscribe.rb
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(email:, current_user: nil) ⇒ Subscribe
constructor
A new instance of Subscribe.
Constructor Details
#initialize(email:, current_user: nil) ⇒ Subscribe
Returns a new instance of Subscribe.
4 5 6 7 |
# File 'app/services/spree/newsletter/subscribe.rb', line 4 def initialize(email:, current_user: nil) @email = email @current_user = current_user end |
Instance Method Details
#call ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/services/spree/newsletter/subscribe.rb', line 9 def call return existed_subscription if existed_subscription.present? ActiveRecord::Base.transaction do upsert_subscriber return subscriber if subscriber.errors.any? if subscriber.email == current_user&.email # no need to verified since user email is already verified Spree::Newsletter::Verify.new(subscriber: subscriber).call end end # deliver confirmation email after the transaction is completed subscriber. unless subscriber.verified? subscriber end |