Module: Klaviyo::People::ApiOperations

Included in:
Klaviyo::People
Defined in:
lib/klaviyo/people/api_operations.rb

Overview

Instance Method Summary collapse

Instance Method Details

#events(client:, id:, sort: 'desc', per: 100, since: Time.now.to_i) ⇒ Object



53
54
55
56
57
58
59
60
61
# File 'lib/klaviyo/people/api_operations.rb', line 53

def events(client:, id:, sort: 'desc', per: 100, since: Time.now.to_i)
  client.conn.get(
    "/api/v1/person/#{id}/metrics/timeline",
    api_key: client.api_key,
    sort: sort,
    count: per,
    since: since
  )
end

#exclude(client:, email:, ts: Time.now.to_i) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/klaviyo/people/api_operations.rb', line 30

def exclude(client:, email:, ts: Time.now.to_i)
  client.conn.post(
    '/api/v1/people/exclusions',
    api_key: client.api_key,
    email: email,
    timestamp: ts
  )
end

#exclusions(client:, reason: 'unsubscribed', sort: 'asc') ⇒ Object



21
22
23
24
25
26
27
28
# File 'lib/klaviyo/people/api_operations.rb', line 21

def exclusions(client:, reason: 'unsubscribed', sort: 'asc')
  client.conn.get(
    '/api/v1/people/exclusions',
    api_key: client.api_key,
    reason: reason,
    sort: sort
  )
end

#find(client:, id:) ⇒ Object



39
40
41
42
43
# File 'lib/klaviyo/people/api_operations.rb', line 39

def find(client:, id:)
  Klaviyo::Resource.build(
    client.conn.get("/api/v1/person/#{id}", api_key: client.api_key).body
  )
end

#identify(client:, properties: {}) ⇒ Object

www.klaviyo.com/docs/http-api#people invoke(:people, :identify, properties: { ‘$email’: ‘[email protected]’ })



10
11
12
13
14
15
# File 'lib/klaviyo/people/api_operations.rb', line 10

def identify(client:, properties: {})
  client.conn.get(
    '/api/identify',
    client.build_params(properties: properties)
  ).body.to_s == '1'
end

#metric_events(client:, id:, metric_id:, sort: 'desc', per: 100, since: Time.now.to_i) ⇒ Object



63
64
65
66
67
68
69
70
71
72
73
# File 'lib/klaviyo/people/api_operations.rb', line 63

def metric_events(client:, id:, metric_id:,
                  sort: 'desc', per: 100,
                  since: Time.now.to_i)
  client.conn.get(
    "/api/v1/person/#{id}/metric/#{metric_id}/timeline",
    api_key: client.api_key,
    sort: sort,
    count: per,
    since: since
  )
end

#update(client:, id:, attrs: {}) ⇒ Object



45
46
47
48
49
50
51
# File 'lib/klaviyo/people/api_operations.rb', line 45

def update(client:, id:, attrs: {})
  Klaviyo::Resource.build(
    client.conn.put(
    "/api/v1/person/#{id}",
    { api_key: client.api_key }.merge(attrs)
  ).body)
end