drip-ruby 3.2.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +5 -1
  3. data/.rubocop_todo.yml +17 -9
  4. data/.travis.yml +1 -1
  5. data/CHANGELOG.md +20 -1
  6. data/Gemfile +10 -0
  7. data/drip-ruby.gemspec +3 -11
  8. data/lib/drip/client.rb +44 -66
  9. data/lib/drip/client/accounts.rb +2 -2
  10. data/lib/drip/client/broadcasts.rb +2 -2
  11. data/lib/drip/client/campaign_subscriptions.rb +1 -1
  12. data/lib/drip/client/campaigns.rb +5 -5
  13. data/lib/drip/client/configuration.rb +28 -0
  14. data/lib/drip/client/conversions.rb +2 -2
  15. data/lib/drip/client/custom_fields.rb +1 -1
  16. data/lib/drip/client/events.rb +4 -4
  17. data/lib/drip/client/forms.rb +2 -2
  18. data/lib/drip/client/http_client.rb +64 -0
  19. data/lib/drip/client/orders.rb +3 -3
  20. data/lib/drip/client/shopper_activity.rb +78 -0
  21. data/lib/drip/client/subscribers.rb +13 -13
  22. data/lib/drip/client/tags.rb +3 -3
  23. data/lib/drip/client/webhooks.rb +5 -5
  24. data/lib/drip/client/workflow_triggers.rb +3 -3
  25. data/lib/drip/client/workflows.rb +6 -6
  26. data/lib/drip/request.rb +31 -0
  27. data/lib/drip/response.rb +13 -13
  28. data/lib/drip/version.rb +1 -1
  29. data/test/drip/client/configuration_test.rb +122 -0
  30. data/test/drip/client/http_client_test.rb +96 -0
  31. data/test/drip/client/shopper_activity_test.rb +175 -0
  32. data/test/drip/client_test.rb +32 -97
  33. data/test/drip/collection_test.rb +14 -0
  34. data/test/drip/collections/account_test.rb +8 -0
  35. data/test/drip/collections/broadcasts_test.rb +8 -0
  36. data/test/drip/collections/campaign_subscriptions_test.rb +8 -0
  37. data/test/drip/collections/campaigns_test.rb +8 -0
  38. data/test/drip/collections/errors_test.rb +8 -0
  39. data/test/drip/collections/orders_test.rb +8 -0
  40. data/test/drip/collections/purchases_test.rb +8 -0
  41. data/test/drip/collections/tags_test.rb +8 -0
  42. data/test/drip/collections/webhooks_test.rb +8 -0
  43. data/test/drip/collections/workflow_triggers_test.rb +8 -0
  44. data/test/drip/collections/workflows_test.rb +8 -0
  45. data/test/drip/request_test.rb +58 -0
  46. data/test/drip/resource_test.rb +12 -0
  47. data/test/drip/resources/tag_test.rb +13 -0
  48. data/test/drip/response_test.rb +33 -0
  49. data/test/test_helper.rb +3 -0
  50. metadata +42 -104
@@ -10,7 +10,7 @@ module Drip
10
10
  # Returns a Drip::Response.
11
11
  # See https://www.getdrip.com/docs/rest-api#conversions
12
12
  def conversions(options = {})
13
- get "#{account_id}/goals", options
13
+ make_json_api_request :get, "v2/#{account_id}/goals", options
14
14
  end
15
15
 
16
16
  # Public: Fetch a conversion.
@@ -20,7 +20,7 @@ module Drip
20
20
  # Returns a Drip::Response.
21
21
  # See https://www.getdrip.com/docs/rest-api#conversions
22
22
  def conversion(id)
23
- get "#{account_id}/goals/#{id}"
23
+ make_json_api_request :get, "v2/#{account_id}/goals/#{id}"
24
24
  end
25
25
  end
26
26
  end
@@ -6,7 +6,7 @@ module Drip
6
6
  # Returns a Drip::Response.
7
7
  # See https://www.getdrip.com/docs/rest-api#custom_fields
8
8
  def custom_fields
9
- get "#{account_id}/custom_field_identifiers"
9
+ make_json_api_request :get, "v2/#{account_id}/custom_field_identifiers"
10
10
  end
11
11
  end
12
12
  end
@@ -14,7 +14,7 @@ module Drip
14
14
  # See https://www.getdrip.com/docs/rest-api#record_event
15
15
  def track_event(email, action, properties = {}, options = {})
16
16
  data = options.merge({ "email" => email, "action" => action, "properties" => properties })
17
- post "#{account_id}/events", generate_resource("events", data)
17
+ make_json_api_request :post, "v2/#{account_id}/events", private_generate_resource("events", data)
18
18
  end
19
19
 
20
20
  # Public: Track a collection of events all at once.
@@ -27,8 +27,8 @@ module Drip
27
27
  # Returns a Drip::Response.
28
28
  # See https://www.getdrip.com/docs/rest-api#event_batches
29
29
  def track_events(events)
30
- url = "#{account_id}/events/batches"
31
- post url, generate_resource("batches", { "events" => events })
30
+ url = "v2/#{account_id}/events/batches"
31
+ make_json_api_request :post, url, private_generate_resource("batches", { "events" => events })
32
32
  end
33
33
 
34
34
  # Public: Fetch all custom event actions.
@@ -41,7 +41,7 @@ module Drip
41
41
  # Returns a Drip::Response.
42
42
  # See https://www.getdrip.com/docs/rest-api#events
43
43
  def event_actions(options = {})
44
- get "#{account_id}/event_actions", options
44
+ make_json_api_request :get, "v2/#{account_id}/event_actions", options
45
45
  end
46
46
  end
47
47
  end
@@ -6,7 +6,7 @@ module Drip
6
6
  # Returns a Drip::Response.
7
7
  # See https://www.getdrip.com/docs/rest-api#forms
8
8
  def forms
9
- get "#{account_id}/forms"
9
+ make_json_api_request :get, "v2/#{account_id}/forms"
10
10
  end
11
11
 
12
12
  # Public: Fetch a form.
@@ -16,7 +16,7 @@ module Drip
16
16
  # Returns a Drip::Response.
17
17
  # See https://www.getdrip.com/docs/rest-api#forms
18
18
  def form(id)
19
- get "#{account_id}/forms/#{id}"
19
+ make_json_api_request :get, "v2/#{account_id}/forms/#{id}"
20
20
  end
21
21
  end
22
22
  end
@@ -0,0 +1,64 @@
1
+ module Drip
2
+ class Client
3
+ class HTTPClient
4
+ REDIRECT_LIMIT = 10
5
+ private_constant :REDIRECT_LIMIT
6
+
7
+ def initialize(config)
8
+ @config = config
9
+ end
10
+
11
+ def make_request(drip_request, redirected_url: nil, step: 0)
12
+ raise TooManyRedirectsError, 'too many HTTP redirects' if step >= REDIRECT_LIMIT
13
+
14
+ uri = redirected_url || drip_request.url.tap do |orig_url|
15
+ next if drip_request.http_verb != :get
16
+
17
+ orig_url.query = URI.encode_www_form(drip_request.options)
18
+ end
19
+
20
+ response = Net::HTTP.start(uri.host, uri.port, connection_options(uri.scheme)) do |http|
21
+ request = drip_request.verb_klass.new uri
22
+ request.body = drip_request.body
23
+
24
+ add_standard_headers(request)
25
+ request['Content-Type'] = drip_request.content_type
26
+
27
+ http.request request
28
+ end
29
+
30
+ return make_request(drip_request, redirected_url: URI(response["Location"]), step: step + 1) if response.is_a?(Net::HTTPRedirection)
31
+
32
+ response
33
+ end
34
+
35
+ private
36
+
37
+ def add_standard_headers(request)
38
+ request['User-Agent'] = "Drip Ruby v#{Drip::VERSION}"
39
+ request['Accept'] = "*/*"
40
+
41
+ if @config.access_token
42
+ request['Authorization'] = "Bearer #{@config.access_token}"
43
+ else
44
+ request.basic_auth @config.api_key, ""
45
+ end
46
+
47
+ request
48
+ end
49
+
50
+ def connection_options(uri_scheme)
51
+ options = { use_ssl: uri_scheme == "https" }
52
+
53
+ if @config.http_open_timeout
54
+ options[:open_timeout] = @config.http_open_timeout
55
+ options[:ssl_timeout] = @config.http_open_timeout
56
+ end
57
+
58
+ options[:read_timeout] = @config.http_timeout if @config.http_timeout
59
+
60
+ options
61
+ end
62
+ end
63
+ end
64
+ end
@@ -11,7 +11,7 @@ module Drip
11
11
  # See https://developer.drip.com/#orders
12
12
  def create_or_update_order(email, options = {})
13
13
  data = options.merge(email: email)
14
- post "#{account_id}/orders", generate_resource("orders", data)
14
+ make_json_api_request :post, "v2/#{account_id}/orders", private_generate_resource("orders", data)
15
15
  end
16
16
 
17
17
  # Public: Create or update a batch of orders.
@@ -21,7 +21,7 @@ module Drip
21
21
  # Returns a Drip::Response.
22
22
  # See https://developer.drip.com/#create-or-update-a-batch-of-orders
23
23
  def create_or_update_orders(orders)
24
- post "#{account_id}/orders/batches", generate_resource("batches", { "orders" => orders })
24
+ make_json_api_request :post, "v2/#{account_id}/orders/batches", private_generate_resource("batches", { "orders" => orders })
25
25
  end
26
26
 
27
27
  # Public: Create or update a refund.
@@ -38,7 +38,7 @@ module Drip
38
38
  # Returns a Drip::Response.
39
39
  # See https://developer.drip.com/#create-or-update-a-refund
40
40
  def create_or_update_refund(options)
41
- post "#{account_id}/refunds", generate_resource("refunds", options)
41
+ make_json_api_request :post, "v2/#{account_id}/refunds", private_generate_resource("refunds", options)
42
42
  end
43
43
  end
44
44
  end
@@ -0,0 +1,78 @@
1
+ module Drip
2
+ class Client
3
+ module ShopperActivity
4
+ # Public: Create a cart activity event.
5
+ #
6
+ # options - Required. A Hash of additional cart options. Refer to the
7
+ # Drip API docs for the required schema.
8
+ #
9
+ # Returns a Drip::Response.
10
+ # See https://developer.drip.com/#cart-activity
11
+ def create_cart_activity_event(data = {})
12
+ raise ArgumentError, 'email: or person_id: parameter required' if !data.key?(:email) && !data.key?(:person_id)
13
+
14
+ %i[provider action cart_id cart_url].each do |key|
15
+ raise ArgumentError, "#{key}: parameter required" unless data.key?(key)
16
+ end
17
+
18
+ data[:occurred_at] = Time.now.iso8601 unless data.key?(:occurred_at)
19
+ make_json_request :post, "v3/#{account_id}/shopper_activity/cart", data
20
+ end
21
+
22
+ # Public: Create an order activity event.
23
+ #
24
+ # options - Required. A Hash of additional order options. Refer to the
25
+ # Drip API docs for the required schema.
26
+ #
27
+ # Returns a Drip::Response.
28
+ # See https://developer.drip.com/#order-activity
29
+ def create_order_activity_event(data = {})
30
+ raise ArgumentError, 'email: or person_id: parameter required' if !data.key?(:email) && !data.key?(:person_id)
31
+
32
+ %i[provider action order_id].each do |key|
33
+ raise ArgumentError, "#{key}: parameter required" unless data.key?(key)
34
+ end
35
+
36
+ data[:occurred_at] = Time.now.iso8601 unless data.key?(:occurred_at)
37
+ make_json_request :post, "v3/#{account_id}/shopper_activity/order", data
38
+ end
39
+
40
+ # Public: Create a batch of order activity events.
41
+ #
42
+ # records - Required. An array of hashes containing orders attributes.
43
+ # Refer to the Drip API docs for the required schema.
44
+ #
45
+ # Returns a Drip::Response.
46
+ # See https://developer.drip.com/#create-or-update-a-batch-of-orders
47
+ def create_order_activity_events(records = [])
48
+ records.each_with_index do |record, i|
49
+ raise ArgumentError, "email: or person_id: parameter required in record #{i}" if !record.key?(:email) && !record.key?(:person_id)
50
+
51
+ %i[provider action order_id].each do |key|
52
+ raise ArgumentError, "#{key}: parameter required in record #{i}" unless record.key?(key)
53
+ end
54
+
55
+ record[:occurred_at] = Time.now.iso8601 unless record.key?(:occurred_at)
56
+ end
57
+
58
+ make_json_request :post, "v3/#{account_id}/shopper_activity/order/batch", records
59
+ end
60
+
61
+ # Public: Create a product activity event.
62
+ #
63
+ # options - Required. A Hash of additional product options. Refer to the
64
+ # Drip API docs for the required schema.
65
+ #
66
+ # Returns a Drip::Response.
67
+ # See https://developer.drip.com/#product-activity
68
+ def create_product_activity_event(data = {})
69
+ %i[provider action product_id name price].each do |key|
70
+ raise ArgumentError, "#{key}: parameter required" unless data.key?(key)
71
+ end
72
+
73
+ data[:occurred_at] = Time.now.iso8601 unless data.key?(:occurred_at)
74
+ make_json_request :post, "v3/#{account_id}/shopper_activity/product", data
75
+ end
76
+ end
77
+ end
78
+ end
@@ -16,7 +16,7 @@ module Drip
16
16
  # Returns a Drip::Response.
17
17
  # See https://www.getdrip.com/docs/rest-api#list_subscribers
18
18
  def subscribers(options = {})
19
- get "#{account_id}/subscribers", options
19
+ make_json_api_request :get, "v2/#{account_id}/subscribers", options
20
20
  end
21
21
 
22
22
  # Public: Fetch a subscriber.
@@ -26,7 +26,7 @@ module Drip
26
26
  # Returns a Drip::Response.
27
27
  # See https://www.getdrip.com/docs/rest-api#fetch_subscriber
28
28
  def subscriber(id_or_email)
29
- get "#{account_id}/subscribers/#{CGI.escape id_or_email}"
29
+ make_json_api_request :get, "v2/#{account_id}/subscribers/#{CGI.escape id_or_email}"
30
30
  end
31
31
 
32
32
  # Public: Create or update a subscriber.
@@ -51,7 +51,7 @@ module Drip
51
51
  data[:email] = args[0] if args[0].is_a? String
52
52
  data.merge!(args.last) if args.last.is_a? Hash
53
53
  raise ArgumentError, 'email: or id: parameter required' if !data.key?(:email) && !data.key?(:id)
54
- post "#{account_id}/subscribers", generate_resource("subscribers", data)
54
+ make_json_api_request :post, "v2/#{account_id}/subscribers", private_generate_resource("subscribers", data)
55
55
  end
56
56
 
57
57
  # Public: Create or update a collection of subscribers.
@@ -70,8 +70,8 @@ module Drip
70
70
  # Returns a Drip::Response
71
71
  # See https://www.getdrip.com/docs/rest-api#subscriber_batches
72
72
  def create_or_update_subscribers(subscribers)
73
- url = "#{account_id}/subscribers/batches"
74
- post url, generate_resource("batches", { "subscribers" => subscribers })
73
+ url = "v2/#{account_id}/subscribers/batches"
74
+ make_json_api_request :post, url, private_generate_resource("batches", { "subscribers" => subscribers })
75
75
  end
76
76
 
77
77
  # Public: Unsubscribe a collection of subscribers.
@@ -82,8 +82,8 @@ module Drip
82
82
  # Returns a Drip::Response
83
83
  # See https://www.getdrip.com/docs/rest-api#subscriber_batches
84
84
  def unsubscribe_subscribers(subscribers)
85
- url = "#{account_id}/unsubscribes/batches"
86
- post url, generate_resource("batches", { "subscribers" => subscribers })
85
+ url = "v2/#{account_id}/unsubscribes/batches"
86
+ make_json_api_request :post, url, private_generate_resource("batches", { "subscribers" => subscribers })
87
87
  end
88
88
 
89
89
  # Public: Unsubscribe a subscriber globally or from a specific campaign.
@@ -96,9 +96,9 @@ module Drip
96
96
  # Returns a Drip::Response.
97
97
  # See https://www.getdrip.com/docs/rest-api#unsubscribe
98
98
  def unsubscribe(id_or_email, options = {})
99
- url = "#{account_id}/subscribers/#{CGI.escape id_or_email}/remove"
99
+ url = "v2/#{account_id}/subscribers/#{CGI.escape id_or_email}/remove"
100
100
  url += options[:campaign_id] ? "?campaign_id=#{options[:campaign_id]}" : ""
101
- post url
101
+ make_json_api_request :post, url
102
102
  end
103
103
 
104
104
  # Public: Subscribe to a campaign.
@@ -126,8 +126,8 @@ module Drip
126
126
  # See https://www.getdrip.com/docs/rest-api#subscribe
127
127
  def subscribe(email, campaign_id, options = {})
128
128
  data = options.merge("email" => email)
129
- url = "#{account_id}/campaigns/#{campaign_id}/subscribers"
130
- post url, generate_resource("subscribers", data)
129
+ url = "v2/#{account_id}/campaigns/#{campaign_id}/subscribers"
130
+ make_json_api_request :post, url, private_generate_resource("subscribers", data)
131
131
  end
132
132
 
133
133
  # Public: Delete a subscriber.
@@ -137,7 +137,7 @@ module Drip
137
137
  # Returns No Content.
138
138
  # See https://www.getdrip.com/docs/rest-api#fdelete_subscriber
139
139
  def delete_subscriber(id_or_email)
140
- delete "#{account_id}/subscribers/#{CGI.escape id_or_email}"
140
+ make_json_api_request :delete, "v2/#{account_id}/subscribers/#{CGI.escape id_or_email}"
141
141
  end
142
142
 
143
143
  # Public: Unsubscribe a subscriber from all mailings.
@@ -147,7 +147,7 @@ module Drip
147
147
  # Returns No Content.
148
148
  # See https://www.getdrip.com/docs/rest-api#fdelete_subscriber
149
149
  def unsubscribe_from_all(id_or_email)
150
- post "#{account_id}/subscribers/#{CGI.escape id_or_email}/unsubscribe_all"
150
+ make_json_api_request :post, "v2/#{account_id}/subscribers/#{CGI.escape id_or_email}/unsubscribe_all"
151
151
  end
152
152
  end
153
153
  end
@@ -8,7 +8,7 @@ module Drip
8
8
  # Returns a Drip::Response.
9
9
  # See https://www.getdrip.com/docs/rest-api#tags
10
10
  def tags
11
- get "#{account_id}/tags"
11
+ make_json_api_request :get, "v2/#{account_id}/tags"
12
12
  end
13
13
 
14
14
  # Public: Apply a tag to a subscriber.
@@ -20,7 +20,7 @@ module Drip
20
20
  # See https://www.getdrip.com/docs/rest-api#apply_tag
21
21
  def apply_tag(email, tag)
22
22
  data = { "email" => email, "tag" => tag }
23
- post "#{account_id}/tags", generate_resource("tags", data)
23
+ make_json_api_request :post, "v2/#{account_id}/tags", private_generate_resource("tags", data)
24
24
  end
25
25
 
26
26
  # Public: Remove a tag from a subscriber.
@@ -31,7 +31,7 @@ module Drip
31
31
  # Returns a Drip::Response.
32
32
  # See https://www.getdrip.com/docs/rest-api#remove_tag
33
33
  def remove_tag(email, tag)
34
- delete "#{account_id}/subscribers/#{CGI.escape email}/tags/#{CGI.escape tag}"
34
+ make_json_api_request :delete, "v2/#{account_id}/subscribers/#{CGI.escape email}/tags/#{CGI.escape tag}"
35
35
  end
36
36
  end
37
37
  end
@@ -6,7 +6,7 @@ module Drip
6
6
  # Returns a Drip::Response.
7
7
  # See https://www.getdrip.com/docs/rest-api#webhooks
8
8
  def webhooks
9
- get "#{account_id}/webhooks"
9
+ make_json_api_request :get, "v2/#{account_id}/webhooks"
10
10
  end
11
11
 
12
12
  # Public: Fetch a webhook
@@ -15,7 +15,7 @@ module Drip
15
15
  # Returns a Drip::Response.
16
16
  # See https://www.getdrip.com/docs/rest-api#webhooks
17
17
  def webhook(id)
18
- get "#{account_id}/webhooks/#{id}"
18
+ make_json_api_request :get, "v2/#{account_id}/webhooks/#{id}"
19
19
  end
20
20
 
21
21
  # Public: Create a webhook.
@@ -34,9 +34,9 @@ module Drip
34
34
  # See https://www.getdrip.com/docs/rest-api#subscriber_batches
35
35
  def create_webhook(post_url, include_received_email, events)
36
36
  include_received_email = include_received_email ? true : false
37
- url = "#{account_id}/webhooks"
37
+ url = "v2/#{account_id}/webhooks"
38
38
 
39
- post url, generate_resource(
39
+ make_json_api_request :post, url, private_generate_resource(
40
40
  "webhooks",
41
41
  {
42
42
  "post_url" => post_url,
@@ -52,7 +52,7 @@ module Drip
52
52
  # Returns a Drip::Response.
53
53
  # See https://www.getdrip.com/docs/rest-api#webhooks
54
54
  def delete_webhook(id)
55
- delete "#{account_id}/webhooks/#{id}"
55
+ make_json_api_request :delete, "v2/#{account_id}/webhooks/#{id}"
56
56
  end
57
57
  end
58
58
  end
@@ -7,7 +7,7 @@ module Drip
7
7
  # Returns a Drip::Response.
8
8
  # See https://www.getdrip.com/docs/rest-api#workflow_triggers
9
9
  def workflow_triggers(id)
10
- get "#{account_id}/workflows/#{id}/triggers"
10
+ make_json_api_request :get, "v2/#{account_id}/workflows/#{id}/triggers"
11
11
  end
12
12
 
13
13
  # Public: Create a workflow trigger.
@@ -22,7 +22,7 @@ module Drip
22
22
  # Returns a Drip::Response.
23
23
  # See https://www.getdrip.com/docs/rest-api#workflows
24
24
  def create_workflow_trigger(id, options = {})
25
- post "#{account_id}/workflows/#{id}/triggers", generate_resource("triggers", options)
25
+ make_json_api_request :post, "v2/#{account_id}/workflows/#{id}/triggers", private_generate_resource("triggers", options)
26
26
  end
27
27
 
28
28
  # Public: Update a workflow trigger.
@@ -37,7 +37,7 @@ module Drip
37
37
  # Returns a Drip::Response.
38
38
  # See https://www.getdrip.com/docs/rest-api#workflows
39
39
  def update_workflow_trigger(id, options = {})
40
- put "#{account_id}/workflows/#{id}/triggers", generate_resource("triggers", options)
40
+ make_json_api_request :put, "v2/#{account_id}/workflows/#{id}/triggers", private_generate_resource("triggers", options)
41
41
  end
42
42
  end
43
43
  end
@@ -12,7 +12,7 @@ module Drip
12
12
  # Returns a Drip::Response.
13
13
  # See https://www.getdrip.com/docs/rest-api#workflows
14
14
  def workflows(options = {})
15
- get "#{account_id}/workflows", options
15
+ make_json_api_request :get, "v2/#{account_id}/workflows", options
16
16
  end
17
17
 
18
18
  # Public: Fetch a workflow.
@@ -21,7 +21,7 @@ module Drip
21
21
  # Returns a Drip::Response.
22
22
  # See https://www.getdrip.com/docs/rest-api#workflows
23
23
  def workflow(id)
24
- get "#{account_id}/workflows/#{id}"
24
+ make_json_api_request :get, "v2/#{account_id}/workflows/#{id}"
25
25
  end
26
26
 
27
27
  # Public: Activate a workflow.
@@ -30,7 +30,7 @@ module Drip
30
30
  # Returns a Drip::Response.
31
31
  # See https://www.getdrip.com/docs/rest-api#workflows
32
32
  def activate_workflow(id)
33
- post "#{account_id}/workflows/#{id}/activate"
33
+ make_json_api_request :post, "v2/#{account_id}/workflows/#{id}/activate"
34
34
  end
35
35
 
36
36
  # Public: Pause a workflow.
@@ -39,7 +39,7 @@ module Drip
39
39
  # Returns a Drip::Response.
40
40
  # See https://www.getdrip.com/docs/rest-api#workflows
41
41
  def pause_workflow(id)
42
- post "#{account_id}/workflows/#{id}/pause"
42
+ make_json_api_request :post, "v2/#{account_id}/workflows/#{id}/pause"
43
43
  end
44
44
 
45
45
  # Public: Start someone on a workflow.
@@ -63,7 +63,7 @@ module Drip
63
63
  # Returns a Drip::Response.
64
64
  # See https://www.getdrip.com/docs/rest-api#workflows
65
65
  def start_subscriber_workflow(id, options = {})
66
- post "#{account_id}/workflows/#{id}/subscribers", generate_resource("subscribers", options)
66
+ make_json_api_request :post, "v2/#{account_id}/workflows/#{id}/subscribers", private_generate_resource("subscribers", options)
67
67
  end
68
68
 
69
69
  # Public: Remove someone from a workflow.
@@ -73,7 +73,7 @@ module Drip
73
73
  # Returns a Drip::Response.
74
74
  # See https://www.getdrip.com/docs/rest-api#workflows
75
75
  def remove_subscriber_workflow(workflow_id, id_or_email)
76
- delete "#{account_id}/workflows/#{workflow_id}/subscribers/#{CGI.escape id_or_email}"
76
+ make_json_api_request :delete, "v2/#{account_id}/workflows/#{workflow_id}/subscribers/#{CGI.escape id_or_email}"
77
77
  end
78
78
  end
79
79
  end