Class: SpreeKlaviyo::UserPresenter
- Inherits:
-
Object
- Object
- SpreeKlaviyo::UserPresenter
- Defined in:
- app/presenters/spree_klaviyo/user_presenter.rb
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(email:, address: nil, user: nil, guest_id: nil) ⇒ UserPresenter
constructor
A new instance of UserPresenter.
Constructor Details
#initialize(email:, address: nil, user: nil, guest_id: nil) ⇒ UserPresenter
Returns a new instance of UserPresenter.
3 4 5 6 7 8 |
# File 'app/presenters/spree_klaviyo/user_presenter.rb', line 3 def initialize(email:, address: nil, user: nil, guest_id: nil) @email = email @address = address @user = user @guest_id = guest_id end |
Instance Method Details
#call ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/presenters/spree_klaviyo/user_presenter.rb', line 10 def call { data: { type: 'profile', attributes: { anonymous_id: @guest_id, email: @user.present? ? @user.email : @email, first_name: @user&.first_name || @address&.first_name, last_name: @user&.last_name || @address&.last_name, external_id: @user&.id, location: { address1: @address&.address1, address2: @address&.address2, city: @address&.city, country: @address&.country_name, region: @address&.state_text, zip: @address&.zipcode } } }.merge(try_klaviyo_id) } end |