Class: SpreeKlaviyo::UserPresenter

Inherits:
Object
  • Object
show all
Defined in:
app/presenters/spree_klaviyo/user_presenter.rb

Instance Method Summary collapse

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

#callObject



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