Class: Spree::Newsletter::LinkUser
- Inherits:
-
Object
- Object
- Spree::Newsletter::LinkUser
- Defined in:
- app/services/spree/newsletter/link_user.rb
Overview
Reconciles a Spree::NewsletterSubscriber with the customer who owns the email. Backfills the user link and propagates verified opt-in onto the user record so consent given before account creation isn’t silently lost on registration.
Best-effort: validation failures are logged but never re-raised. Callers are already past the point where rolling back makes sense (the user record exists, the subscription exists). This is reconciliation, not a precondition.
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(subscriber:, user:) ⇒ LinkUser
constructor
A new instance of LinkUser.
Constructor Details
#initialize(subscriber:, user:) ⇒ LinkUser
Returns a new instance of LinkUser.
11 12 13 14 |
# File 'app/services/spree/newsletter/link_user.rb', line 11 def initialize(subscriber:, user:) @subscriber = subscriber @user = user end |
Instance Method Details
#call ⇒ Object
16 17 18 19 20 21 22 23 24 |
# File 'app/services/spree/newsletter/link_user.rb', line 16 def call return if subscriber.blank? || user.blank? return if subscriber.user_id == user.id && !needs_marketing_propagation? link_subscriber_to_user if needs_marketing_propagation? subscriber end |