customerio_api 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6091d1158347650e87f732c7e733f0db28b0832e80d28df0b4b645648bddcd06
4
- data.tar.gz: 00a16c715091dbdef658965c64244b18cde75248ed766b7e878825788633cb7a
3
+ metadata.gz: 55d2eb57401ec393eb20828ae5bf0f8b0c976eb71e2687ceab6f00ad6a5ba4a3
4
+ data.tar.gz: d54b39470b1e03f6eabb0834587fb0670f35c1072d8346df8b676e56d9dd3771
5
5
  SHA512:
6
- metadata.gz: a12e7858737966bd0b05245b323b661e2959b19e358e1da381ae5942f70ccac9dc298219dabe4c62b7a7480c980cfc4182a063ba019f9b3b50d97869172ff07e
7
- data.tar.gz: 8339cfd265bba418b73a8f186543a68351f58047745ce415970142d8f1b32fe51a32c99c44aaf2e846ae4031e17131cfb4e7c2193fef16652f993ded52479f35
6
+ metadata.gz: 411e4e3e895be49da5bfb74689141c9c29f59451956c2f7a21667c5eedfb910d8c17b95204496075444a418b9ad1de42acda32390842d9cfbf047f854d2abff1
7
+ data.tar.gz: 74193ecf0712a3507f19d4ee63cace92de371e8550a2abf95142deebc3ed1bfeb8615b0ee3ac184fa66d4c5a158cc9dc8cc265a23f41296c9f4fe24b4ff281aa
data/.env.sample ADDED
@@ -0,0 +1,3 @@
1
+ API_KEY=
2
+ SITE_ID=
3
+ API_KEY=
data/README.md CHANGED
@@ -50,6 +50,29 @@ customers = v1_client.customer.where(email: 'test@example.com')
50
50
  # => returns a list of CustomerioAPI::Customer
51
51
  ```
52
52
 
53
+ #### 2. Use s set of filter conditions to find customer
54
+
55
+ ```ruby
56
+ attributes =
57
+ {
58
+ filter: {
59
+ and:
60
+ [
61
+ {
62
+ attribute: {
63
+ field: 'cio_id',
64
+ operator: 'eq',
65
+ value: 'd7a90a000a0b'
66
+ }
67
+ }
68
+ ]
69
+ }
70
+ }
71
+ customer_identifiers = v1_client.customer.search(attributes: attributes)
72
+
73
+ # => returns a CustomerioAPI::Customer object, containing arrays of identifiers and ids
74
+ ```
75
+
53
76
  ### CustomerioObject
54
77
 
55
78
  #### 1. Use a set of filter conditions to find object
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CustomerioAPI
4
+ class CustomerEventResource < Resource
5
+ # client.customer_event.create(identifier: id | email | cio_id, attributes: {name: "event_a", data: {"key": "value"}})
6
+ def create(identifier:, attributes:)
7
+ post_request("customers/#{identifier}/events", body: attributes)
8
+ end
9
+ end
10
+ end
@@ -10,5 +10,11 @@ module CustomerioAPI
10
10
  response_body = get_request('customers', params: { email: email }).body
11
11
  response_body['results'].map { |customers| Customer.new(customers) }
12
12
  end
13
+
14
+ # client.customer.search(attributes: attributes)
15
+ def search(attributes:, start: nil, limit: nil)
16
+ response_body = post_request("customers?start=#{start}&limit=#{limit}", body: attributes).body
17
+ Customer.new(response_body)
18
+ end
13
19
  end
14
20
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'faraday'
4
+
5
+ module CustomerioAPI
6
+ class TrackV1Client
7
+ BASE_URL = 'https://customer.io/api/v1/'
8
+ attr_reader :site_id, :track_api_key, :adapter
9
+
10
+ def initialize(site_id:, track_api_key:, adapter: Faraday.default_adapter)
11
+ @site_id = site_id
12
+ @track_api_key = track_api_key
13
+ @adapter = adapter
14
+ end
15
+
16
+ def customer_event
17
+ CustomerEventResource.new(self)
18
+ end
19
+
20
+ def connection
21
+ @connection ||= Faraday.new do |conn|
22
+ conn.url_prefix = BASE_URL
23
+ conn.request :json
24
+ conn.response :json, content_type: 'application/json'
25
+ conn.adapter adapter
26
+ conn.request :authorization, :basic, site_id, track_api_key
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CustomerioAPI
4
- VERSION = "0.2.0"
4
+ VERSION = "0.4.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: customerio_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - linhho0702
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-18 00:00:00.000000000 Z
11
+ date: 2024-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -115,6 +115,7 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
+ - ".env.sample"
118
119
  - ".rspec"
119
120
  - CHANGELOG.md
120
121
  - CODE_OF_CONDUCT.md
@@ -128,10 +129,12 @@ files:
128
129
  - lib/customerio_api/objects/customerio_object.rb
129
130
  - lib/customerio_api/objects/object_relationship.rb
130
131
  - lib/customerio_api/resource.rb
132
+ - lib/customerio_api/resources/customer_event_resource.rb
131
133
  - lib/customerio_api/resources/customer_resource.rb
132
134
  - lib/customerio_api/resources/customerio_object_resource.rb
133
135
  - lib/customerio_api/resources/object_relationship_resource.rb
134
136
  - lib/customerio_api/resources/track_resource.rb
137
+ - lib/customerio_api/track_v1_client.rb
135
138
  - lib/customerio_api/v1_client.rb
136
139
  - lib/customerio_api/v2_client.rb
137
140
  - lib/customerio_api/version.rb