drip-ruby 0.0.4 → 0.0.5

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
  SHA1:
3
- metadata.gz: 9517d2daf672dbd3ce976aa87445eaba6b13c401
4
- data.tar.gz: 32f6963d29532bfb0b051c791d4646e829adef5c
3
+ metadata.gz: 7cbe72d291a23e630224db7a0064e44bdc3be664
4
+ data.tar.gz: 9c19909fa87866a29693dde808f0286ce2535eec
5
5
  SHA512:
6
- metadata.gz: 9450ed93e3e54dc5c9f412b7eb621bc156d001a2aeedd2ce73b2f680f9ad82d296653d6668c29bae08f853056999644cc251f4f1282ae1acb42c58541dfd09f5
7
- data.tar.gz: b79a01d2437d10bfd8baf8a1b787ddc2bffdc2dcd9c0035c0ae515a92c0077e247ee529f6e019d812b19a2f2a78daa4c9149c7c530f5c6c2149437df31695cf4
6
+ metadata.gz: 03bbecdcce3efb18d0209b18a576f612d94749e72f0168f4255bcd3b7490761d7f6c66d856fe331d404d774dbf1b551f1cf678258e41a7ac44671e5f8afcb077
7
+ data.tar.gz: 4abe3cfdc1a37aa37d607c15eb2728fe5faf839a79ff85308ac9db7edb148ba3abe76d9f7c0a1dcbc60d648c17a445e685d8aafac2d41f69e7b91c2c6e2e1765
data/README.md CHANGED
@@ -62,6 +62,7 @@ as methods on the client object. The following methods are currently available:
62
62
  | Action | Method |
63
63
  | :------------------------- | :--------------------------------------------------- |
64
64
  | List accounts | `#accounts` |
65
+ | List subscribers | `#subscribers(options = {})` |
65
66
  | Create/update a subscriber | `#create_or_update_subscriber(email, options = {})` |
66
67
  | Create/update a batch of subscribers | `#create_or_update_subscribers(subscribers)` |
67
68
  | Fetch a subscriber | `#subscriber(id_or_email)` |
@@ -82,6 +83,27 @@ for a complete API reference.
82
83
 
83
84
  Here are some common use cases for the API client.
84
85
 
86
+ ###Fetching user accounts
87
+
88
+ Once you have an access token for a Drip user, you can fetch their accounts.
89
+
90
+ Initialize your client and pull down the user's accounts. To make further calls, set the account_id
91
+ on your client to the account you want to access.
92
+
93
+ ```ruby
94
+ client = Drip::Client.new do |c|
95
+ c.access_token = "YOUR_ACCESS_TOKEN"
96
+ end
97
+
98
+ resp = client.accounts
99
+ # => <Drip::Response ...>
100
+
101
+ account_id = resp.accounts.first.id
102
+ # => "9999999"
103
+
104
+ client.account_id = account_id
105
+ ```
106
+
85
107
  ### Fetching subscriber data
86
108
 
87
109
  Subscribers can be looked up by their email address or by their Drip subscriber
@@ -8,11 +8,14 @@ module Drip
8
8
  # email - Required. The String email address of the subscriber.
9
9
  # action - Required. The String event action.
10
10
  # properties - Optional. A Hash of event properties.
11
+ # options - Optional. A Hash of additional options:
12
+ # - prospect - A Boolean indicating if the subscriber is a prospect.
13
+ # - occurred_at - A String time at which the event occurred in ISO-8601 format.
11
14
  #
12
15
  # Returns a Drip::Response.
13
16
  # See https://www.getdrip.com/docs/rest-api#record_event
14
- def track_event(email, action, properties = {})
15
- data = { "email" => email, "action" => action, "properties" => properties }
17
+ def track_event(email, action, properties = {}, options = {})
18
+ data = options.merge({ "email" => email, "action" => action, "properties" => properties })
16
19
  post "#{account_id}/events", generate_resource("events", data)
17
20
  end
18
21
 
@@ -1,3 +1,3 @@
1
1
  module Drip
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -17,25 +17,58 @@ class Drip::Client::EventsTest < Drip::TestCase
17
17
  @email = "derrick@getdrip.com"
18
18
  @action = "Signed up"
19
19
  @properties = { "foo" => "bar" }
20
- @payload = {
21
- "events" => [{
22
- "email" => @email,
23
- "action" => @action,
24
- "properties" => @properties
25
- }]
26
- }.to_json
20
+ end
27
21
 
28
- @response_status = 201
29
- @response_body = stub
22
+ context "without options" do
23
+ setup do
24
+ @payload = {
25
+ "events" => [{
26
+ "email" => @email,
27
+ "action" => @action,
28
+ "properties" => @properties
29
+ }]
30
+ }.to_json
30
31
 
31
- @stubs.post "12345/events", @payload do
32
- [@response_status, {}, @response_body]
32
+ @response_status = 201
33
+ @response_body = stub
34
+
35
+ @stubs.post "12345/events", @payload do
36
+ [@response_status, {}, @response_body]
37
+ end
38
+ end
39
+
40
+ should "send the right request" do
41
+ expected = Drip::Response.new(@response_status, @response_body)
42
+ assert_equal expected, @client.track_event(@email, @action, @properties)
33
43
  end
34
44
  end
35
45
 
36
- should "send the right request" do
37
- expected = Drip::Response.new(@response_status, @response_body)
38
- assert_equal expected, @client.track_event(@email, @action, @properties)
46
+ context "with options" do
47
+ setup do
48
+ @occurred_at = "2015-09-28T10:00:00Z"
49
+ @options = { occurred_at: @occurred_at }
50
+
51
+ @payload = {
52
+ "events" => [{
53
+ "occurred_at" => @occurred_at,
54
+ "email" => @email,
55
+ "action" => @action,
56
+ "properties" => @properties
57
+ }]
58
+ }.to_json
59
+
60
+ @response_status = 201
61
+ @response_body = stub
62
+
63
+ @stubs.post "12345/events", @payload do
64
+ [@response_status, {}, @response_body]
65
+ end
66
+ end
67
+
68
+ should "send the right request" do
69
+ expected = Drip::Response.new(@response_status, @response_body)
70
+ assert_equal expected, @client.track_event(@email, @action, @properties, @options)
71
+ end
39
72
  end
40
73
  end
41
74
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drip-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Derrick Reimer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-21 00:00:00.000000000 Z
11
+ date: 2015-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler