iterable-api-client 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d04be11184926b2bcffba1f777270fc08fbf83e676babb5c1e79756e33915464
4
- data.tar.gz: 07723ae603767edd511e37a3c682f0348e6a9262ca435e881fd4d86a7e77b515
3
+ metadata.gz: 003ee817aaa95dc181bf7b36909387689f70ffa1ed755878eb7132a0166b0130
4
+ data.tar.gz: 3ab136966f544fc25f2431d39a99ac84e94cf5f88c1d496f1dd7b4bd2e45cff2
5
5
  SHA512:
6
- metadata.gz: dc7f30727eaa45240f3a0f683e58128184397a305214e29e719ae34d0794ee04421bfb0bf496865a285f85edede66691d40e3f0e19a24652261efe38e1b6fa82
7
- data.tar.gz: a90443045373add4a10ffd3ddbfb74114e71102b6be4f9f8392af1b179a02813e9432d15c3d743499ccb7ae27a8fcbb2e548fb43ec826aff3e1b4211b29a4e27
6
+ metadata.gz: d3696c057360e661ee4f632182323a9d99a8af4110be64fce1d1dfd58980c9a13d65dc1b0767df53f17502925526949e1fc17aadc980a4b654479a34a65009bc
7
+ data.tar.gz: 874f5d7201a038ddc54437e1d0920b3c0bf77f5d5333c5ccdcd5a756e20154d0942b0920c800669e2adb8ef0d3f65a62b66644a936ed25800bf59d26bd571a93
checksums.yaml.gz.sig CHANGED
Binary file
data/README.md CHANGED
@@ -124,6 +124,7 @@ reponse.uri
124
124
  - [Upsert](#email-templates-upsert)
125
125
  - [Events](#events)
126
126
  - [For Email](#events-for-email)
127
+ - [Bulk Track](#events-track-bulk)
127
128
  - [Track](#events-track)
128
129
  - [Track Push Open](#events-track-push-open)
129
130
  - [Experiments](#experiments)
@@ -133,6 +134,8 @@ reponse.uri
133
134
  - [CSV](#export-csv)
134
135
  - [In App](#in-app)
135
136
  - [Messages](#in-app-messages)
137
+ - [Target](#in-app-target)
138
+ - [Cancel](#in-app-cancel)
136
139
  - [Lists](#lists)
137
140
  - [All](#lists-all)
138
141
  - [Create](#lists-create)
@@ -149,6 +152,9 @@ reponse.uri
149
152
  - [Get Key](#metadata-get-key)
150
153
  - [Remove Key](#metadata-remove-key)
151
154
  - [Add Key](#metadata-add-key)
155
+ - [Push](#push)
156
+ - [Target](#push-target)
157
+ - [Cancel](#push-cancel)
152
158
  - [Push Templates](#push-templates)
153
159
  - [Get](#push-templates-get)
154
160
  - [Update](#push-templates-update)
@@ -300,7 +306,8 @@ Endpoint: `GET /catalogs/{catalogName}/fieldMappings`
300
306
  ```ruby
301
307
  catalog = 'my-catalog'
302
308
  catalog_field_mappings = Iterable::CatalogFieldMappings.new(catalog)
303
- response = catalog_field_mappings.field_mappings
309
+ response = catalog_field_mappings.get
310
+ response.body['params']['definedMappings']
304
311
  ```
305
312
 
306
313
  #### Catalog Field Mappings Update
@@ -557,6 +564,19 @@ attrs = { campaignId: 42, dataFields: {} }
557
564
  response = events.track 'event-name', 'user@example.com', attrs
558
565
  ```
559
566
 
567
+ #### Events Track Bulk
568
+
569
+ Endpoint: `POST /events/trackBulk`
570
+
571
+ ```ruby
572
+ events = Iterable::Events.new
573
+ # Array of events to track
574
+ events_attrs = [
575
+ { email: 'user@example.com', eventName: 'event-name', campaignId: 42, dataFields: {} }
576
+ ]
577
+ response = iterable_events.track_bulk events_attrs
578
+ ```
579
+
560
580
  #### Events Track Push Open
561
581
 
562
582
  Endpoint: `GET /events/{email}`
@@ -639,7 +659,34 @@ response = in_app.messages_for_user_id 42, count: 2
639
659
  # Pass in query parameters
640
660
  email = 'user@example.com'
641
661
  attrs = { 'platform' => 'iOS' }
642
- response = in_app.messages_for_email: email, attrs
662
+ response = in_app.messages_for_email email, attrs
663
+ ```
664
+
665
+ #### In App Target
666
+
667
+ Endpoint: `POST /inApp/target`
668
+
669
+ ```ruby
670
+ in_app = Iterable::InApp.new
671
+
672
+ # Needs campaign ID and an optional email
673
+ email = 'user@example.com'
674
+ attrs = { 'campaignId' => '123456asdf' }
675
+ response = in_app.target attrs: attrs, email: email
676
+ ```
677
+
678
+ #### In App Cancel
679
+
680
+ Endpoint: `POST /push/cancel`
681
+
682
+ ```ruby
683
+ in_app = Iterable::InApp.new
684
+
685
+ # Needs campaign ID and an optional email and optional attrs for request
686
+ email = 'user@example.com'
687
+ campaign_id = '12345asdf'
688
+ attrs = {}
689
+ response = in_app.target campaign_id: campaign_id, attrs: attrs, email: email
643
690
  ```
644
691
 
645
692
  ### Lists
@@ -776,6 +823,32 @@ value = { foo: 'bar', data: 'stuffs' }
776
823
  response = metadata_table.add 'metadata-key', value
777
824
  ```
778
825
 
826
+ ### Push
827
+
828
+ #### Push Target
829
+
830
+ Endpoint: `POST /push/target`
831
+
832
+ ```ruby
833
+ push = Iterable::Push.new
834
+ campaign_id = '1234asdf'
835
+ email = 'user@example.com' # optional
836
+ attrs = {} # optional extra params for the request
837
+ response = push.target campaign_id: campaign_id, email: email, attrs: attrs
838
+ ```
839
+
840
+ #### Push Cancel
841
+
842
+ Endpoint: `POST /push/cancel`
843
+
844
+ ```ruby
845
+ push = Iterable::Push.new
846
+ campaign_id = '1234asdf'
847
+ email = 'user@example.com' # optional
848
+ attrs = {} # optional extra params for the request
849
+ response = push.cancel email: email, campaign_id: campaign_id, attrs: attrs
850
+ ```
851
+
779
852
  ### Push Templates
780
853
 
781
854
  #### Push Templates Get
@@ -854,10 +927,10 @@ Endpoint: `POST /users/bulkUpdate`
854
927
  users = Iterable::Users.new
855
928
  # Array of users to update by email with additional
856
929
  # fields if needed
857
- users = [
930
+ users_attrs = [
858
931
  { email: 'user@example.com', userID: 'custom-id' }
859
932
  ]
860
- response = users.bulk_update users
933
+ response = users.bulk_update users_attrs
861
934
  ```
862
935
 
863
936
  #### Users Update Subscriptions
@@ -39,6 +39,19 @@ module Iterable
39
39
  Iterable.request(conf, '/events/track').post(attrs)
40
40
  end
41
41
 
42
+ ##
43
+ #
44
+ # Bulk Track events
45
+ #
46
+ # @param events [Array[Hash]] Array of hashes of event details
47
+ #
48
+ # @return [Iterable::Response] A response object
49
+ #
50
+ # @note Event fields can be eventName [String], email [String], dataFields [Hash], or userId [String]
51
+ def track_bulk(events = [])
52
+ Iterable.request(conf, '/events/trackBulk').post(events: events)
53
+ end
54
+
42
55
  ##
43
56
  #
44
57
  # Track an event
@@ -41,6 +41,42 @@ module Iterable
41
41
  messages(attrs)
42
42
  end
43
43
 
44
+ ##
45
+ #
46
+ # Send an In-App notification to a specific user. User Email or ID along
47
+ # with campaign ID must be provided
48
+ #
49
+ # @param email [String] (optional) User email used to identify user
50
+ # @param campaign_id [Integer] Campaign ID
51
+ # @param attrs [Hash] Additional data to update or add
52
+ #
53
+ # @return [Iterable::Response] A response object
54
+ #
55
+ def target(campaign_id:, attrs: {}, email: nil)
56
+ attrs['recipientEmail'] = email if email
57
+ attrs['campaignId'] = campaign_id
58
+ Iterable.request(conf, '/inApp/target').post(attrs)
59
+ end
60
+
61
+ ##
62
+ #
63
+ # Cancel an In App notification sent to a specific user
64
+ # Must include either an email address AND campaignId, or
65
+ # just a scheduledMessageId provided in the attrs
66
+ #
67
+ # @param email [String] User email to cancel push
68
+ # @param campaignId [Integer] campaignID used to cancel push
69
+ # @param attrs [Hash] Additional data to update or add
70
+ #
71
+ # @return [Iterable::Response] A response object
72
+ #
73
+ # @note An email or UserId is required
74
+ def cancel(campaign_id: nil, attrs: {}, email: nil)
75
+ attrs['email'] = email if email
76
+ attrs['campaignId'] = campaign_id if campaign_id
77
+ Iterable.request(conf, '/push/cancel').post(attrs)
78
+ end
79
+
44
80
  private def messages(**attrs)
45
81
  Iterable.request(conf, '/inApp/getMessages', attrs).get
46
82
  end
@@ -0,0 +1,46 @@
1
+ module Iterable
2
+ ##
3
+ #
4
+ # Interact with /push API endpoints
5
+ #
6
+ # @example Creating push endpoint object
7
+ # # With default config
8
+ # templates = Iterable::Push.new
9
+ # templates.target campaign_id: '12345'
10
+ #
11
+ class Push < ApiResource
12
+ ##
13
+ #
14
+ # Send a push notification to a specific user
15
+ #
16
+ # @param email [String] (optional) User email used to identify user
17
+ # @param campaign_id [Integer] Campaign ID
18
+ # @param attrs [Hash] Additional data to update or add
19
+ #
20
+ # @return [Iterable::Response] A response object
21
+ def target(campaign_id:, email: nil, attrs: {})
22
+ attrs['recipientEmail'] = email if email
23
+ attrs['campaignId'] = campaign_id
24
+ Iterable.request(conf, '/push/target').post(attrs)
25
+ end
26
+
27
+ ##
28
+ #
29
+ # Cancel a push notification to a specific user
30
+ # Must include either an email address AND campaignId, or
31
+ # just a scheduledMessageId provided in the attrs
32
+ #
33
+ # @param email [String] User email to cancel push
34
+ # @param campaignId [Integer] campaignID used to cancel push
35
+ # @param attrs [Hash] Additional data to update or add
36
+ #
37
+ # @return [Iterable::Response] A response object
38
+ #
39
+ # @note An email or UserId is required
40
+ def cancel(email: nil, campaign_id: nil, attrs: {})
41
+ attrs['email'] = email if email
42
+ attrs['campaignId'] = campaign_id if campaign_id
43
+ Iterable.request(conf, '/push/cancel').post(attrs)
44
+ end
45
+ end
46
+ end
data/lib/iterable.rb CHANGED
@@ -22,6 +22,7 @@ files = %w[
22
22
  templates
23
23
  email_templates
24
24
  push_templates
25
+ push
25
26
  users
26
27
  workflows
27
28
  metadata
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iterable-api-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chavez
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
11
  - |
@@ -35,7 +35,7 @@ cert_chain:
35
35
  skirV2p91csPqqACuQCX2oK9r29QZtt95aAnVdsdBMA+evI2nVknO0OhYDqNA0wR
36
36
  SkUCdTSDgV9CsbN/vy6DeR0eX1kP6OrntZJjKnrncbkKZnrJ5fjzKtUyj3I=
37
37
  -----END CERTIFICATE-----
38
- date: 2022-06-08 00:00:00.000000000 Z
38
+ date: 2023-01-18 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: multi_json
@@ -219,6 +219,20 @@ dependencies:
219
219
  - - "~>"
220
220
  - !ruby/object:Gem::Version
221
221
  version: 0.21.2
222
+ - !ruby/object:Gem::Dependency
223
+ name: simplecov-cobertura
224
+ requirement: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: 2.1.0
229
+ type: :development
230
+ prerelease: false
231
+ version_requirements: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: 2.1.0
222
236
  - !ruby/object:Gem::Dependency
223
237
  name: typhoeus
224
238
  requirement: !ruby/object:Gem::Requirement
@@ -308,6 +322,7 @@ files:
308
322
  - lib/iterable/message_types.rb
309
323
  - lib/iterable/metadata.rb
310
324
  - lib/iterable/metadata_table.rb
325
+ - lib/iterable/push.rb
311
326
  - lib/iterable/push_templates.rb
312
327
  - lib/iterable/request.rb
313
328
  - lib/iterable/response.rb
@@ -320,7 +335,7 @@ licenses:
320
335
  - MIT
321
336
  metadata:
322
337
  rubygems_mfa_required: 'true'
323
- post_install_message:
338
+ post_install_message:
324
339
  rdoc_options:
325
340
  - "--charset=UTF-8"
326
341
  - "--main=README.md"
@@ -337,8 +352,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
337
352
  - !ruby/object:Gem::Version
338
353
  version: '0'
339
354
  requirements: []
340
- rubygems_version: 3.0.3
341
- signing_key:
355
+ rubygems_version: 3.1.6
356
+ signing_key:
342
357
  specification_version: 4
343
358
  summary: Iterable REST API Client
344
359
  test_files: []
metadata.gz.sig CHANGED
Binary file