sendgrid_webapi 0.0.2 → 0.1.2

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.
Files changed (97) hide show
  1. checksums.yaml +7 -0
  2. data/.circleci/config.yml +132 -0
  3. data/.circleci/setup-rubygems.sh +5 -0
  4. data/.gitignore +27 -1
  5. data/.rspec +2 -2
  6. data/.ruby-version +1 -0
  7. data/.tool-versions +1 -0
  8. data/MIT-LICENSE +20 -0
  9. data/README.rdoc +103 -79
  10. data/lib/api_key/management.rb +33 -0
  11. data/lib/api_key/modules.rb +10 -0
  12. data/lib/apikey_client.rb +11 -0
  13. data/lib/base.rb +47 -13
  14. data/lib/helper.rb +8 -8
  15. data/lib/sendgrid_webapi.rb +1 -0
  16. data/lib/sub_user/modules.rb +15 -15
  17. data/lib/version.rb +2 -2
  18. data/lib/web_api/blocks.rb +5 -0
  19. data/lib/web_api/bounces.rb +5 -0
  20. data/lib/web_api/modules.rb +15 -11
  21. data/lib/web_api/version.rb +1 -1
  22. data/lib/webapi_client.rb +1 -1
  23. data/sendgrid_webapi.gemspec +12 -8
  24. data/spec/cassettes/client/_modules/_block/should_get_block_emails.yml +29 -41
  25. data/spec/cassettes/client/_modules/_block/should_get_totals_blocks.yml +36 -0
  26. data/spec/cassettes/client/_modules/_block/should_try_delete_not_existing_block_email.yml +29 -42
  27. data/spec/cassettes/client/_modules/_bounce/should_get_bounce_emails.yml +27 -31
  28. data/spec/cassettes/client/_modules/_bounce/should_get_totals_bounces.yml +36 -0
  29. data/spec/cassettes/client/_modules/_bounce/should_try_delete_not_existing_bounce_email.yml +27 -32
  30. data/spec/cassettes/client/_modules/_event_notification/should_delete_event_notification_url.yml +38 -40
  31. data/spec/cassettes/client/_modules/_event_notification/should_get_event_notification_url.yml +38 -40
  32. data/spec/cassettes/client/_modules/_event_notification/should_set_event_notification_url.yml +38 -40
  33. data/spec/cassettes/client/_modules/_invalid_email/should_get_invalid_emails.yml +27 -31
  34. data/spec/cassettes/client/_modules/_invalid_email/should_try_delete_not_existing_invalid_emails.yml +27 -32
  35. data/spec/cassettes/client/_modules/_parse_email/should_delete_parse_email.yml +73 -76
  36. data/spec/cassettes/client/_modules/_parse_email/should_get_parse_email.yml +38 -41
  37. data/spec/cassettes/client/_modules/_parse_email/should_set_parse_email.yml +38 -40
  38. data/spec/cassettes/client/_modules/_profile/should_get_profile.yml +39 -43
  39. data/spec/cassettes/client/_modules/_profile/should_set_first_name.yml +109 -117
  40. data/spec/cassettes/client/_modules/_spam/should_get_spam_emails.yml +27 -31
  41. data/spec/cassettes/client/_modules/_spam/should_try_delete_not_existing_spam_emails.yml +27 -32
  42. data/spec/cassettes/client/_modules/_unsubscribe/should_add_unsubscribe_emails.yml +27 -31
  43. data/spec/cassettes/client/_modules/_unsubscribe/should_delete_unsubscribe_email.yml +27 -31
  44. data/spec/cassettes/client/_modules/_unsubscribe/should_get_unsubscribe_emails.yml +27 -32
  45. data/spec/cassettes/client/_modules/_unsubscribe/should_try_delete_not_existing_unsubscribe_emails.yml +27 -32
  46. data/spec/cassettes/helper/_create_sub_user_account/should_create_sub_user_account.yml +248 -255
  47. data/spec/cassettes/helper/_run_sendgrid_query/should_raise_with_unsucessfull_request.yml +39 -38
  48. data/spec/cassettes/helper/_run_sendgrid_query/should_run_sendgrid_request.yml +38 -40
  49. data/spec/cassettes/sub_user/_apps/should_activate_app.yml +38 -40
  50. data/spec/cassettes/sub_user/_apps/should_deactivate_app.yml +38 -40
  51. data/spec/cassettes/sub_user/_apps/should_get_current_setting_from_one_app.yml +38 -41
  52. data/spec/cassettes/sub_user/_apps/should_return_available_apps.yml +63 -55
  53. data/spec/cassettes/sub_user/_apps/should_set_current_app.yml +73 -72
  54. data/spec/cassettes/sub_user/_authentication/should_auth_a_sub_user.yml +38 -40
  55. data/spec/cassettes/sub_user/_authentication/should_return_error_with_a_bad_sub_user.yml +38 -40
  56. data/spec/cassettes/sub_user/_bounces/should_returns_bounce_emails.yml +38 -39
  57. data/spec/cassettes/sub_user/_bounces/should_tries_to_delete_unexisting_bounce_emails.yml +38 -40
  58. data/spec/cassettes/sub_user/_event_notification/should_add_event_notification_url.yml +38 -40
  59. data/spec/cassettes/sub_user/_event_notification/should_delete_event_notification_url.yml +38 -40
  60. data/spec/cassettes/sub_user/_event_notification/should_get_event_notification_url.yml +38 -40
  61. data/spec/cassettes/sub_user/_invalid_emails/should_return_invalid_emails.yml +38 -39
  62. data/spec/cassettes/sub_user/_invalid_emails/should_tries_to_delete_unexisting_invalid_mail.yml +38 -40
  63. data/spec/cassettes/sub_user/_ip_management/should_return_all_ips_available.yml +38 -40
  64. data/spec/cassettes/sub_user/_ip_management/should_show_ip_subuser.yml +38 -40
  65. data/spec/cassettes/sub_user/_limits/should_decrements_credits_for_a_sub_user.yml +73 -77
  66. data/spec/cassettes/sub_user/_limits/should_delete_all_limits_for_a_sub_user.yml +73 -76
  67. data/spec/cassettes/sub_user/_limits/should_increments_credits_for_a_sub_user.yml +73 -77
  68. data/spec/cassettes/sub_user/_limits/should_list_the_limits_for_a_sub_user.yml +38 -40
  69. data/spec/cassettes/sub_user/_limits/should_reset_all_limits_for_a_sub_user.yml +73 -77
  70. data/spec/cassettes/sub_user/_limits/should_returns_limits_for_a_sub_user.yml +38 -40
  71. data/spec/cassettes/sub_user/_limits/should_set_total_credits.yml +38 -40
  72. data/spec/cassettes/sub_user/_management/should_add_new_subuser.yml +38 -40
  73. data/spec/cassettes/sub_user/_management/should_disable_sub_user_for_send_email.yml +38 -40
  74. data/spec/cassettes/sub_user/_management/should_enable_sub_user_for_access_to_website.yml +38 -40
  75. data/spec/cassettes/sub_user/_management/should_enable_sub_user_for_send_email.yml +38 -40
  76. data/spec/cassettes/sub_user/_management/should_update_sub_user.yml +38 -40
  77. data/spec/cassettes/sub_user/_monitor_records/should_add_existing_sub_user_to_monitor_record.yml +73 -78
  78. data/spec/cassettes/sub_user/_monitor_records/should_create_a_new_monitor_record.yml +73 -78
  79. data/spec/cassettes/sub_user/_monitor_records/should_delete_a_monitor_record.yml +73 -76
  80. data/spec/cassettes/sub_user/_monitor_records/should_edit_a_monitor_record.yml +73 -78
  81. data/spec/cassettes/sub_user/_monitor_records/should_remove_existing_sub_user_from_monitor_record.yml +73 -78
  82. data/spec/cassettes/sub_user/_parse_email/should_delete_parse_email.yml +73 -76
  83. data/spec/cassettes/sub_user/_parse_email/should_get_parse_email.yml +38 -41
  84. data/spec/cassettes/sub_user/_parse_email/should_set_parse_email.yml +38 -40
  85. data/spec/cassettes/sub_user/_spam/should_return_spam_mails.yml +38 -39
  86. data/spec/cassettes/sub_user/_spam/should_tries_to_delete_unexisting_spam_mail.yml +38 -40
  87. data/spec/cassettes/sub_user/_unsubscribes/should_add_bounce_email.yml +38 -40
  88. data/spec/cassettes/sub_user/_unsubscribes/should_delete_existing_bounce_email.yml +38 -40
  89. data/spec/cassettes/sub_user/_unsubscribes/should_delete_unexisting_bounce_email.yml +38 -40
  90. data/spec/cassettes/sub_user/_unsubscribes/should_returns_bounce_emails.yml +38 -40
  91. data/spec/client_spec.rb +7 -4
  92. data/spec/helper_spec.rb +9 -9
  93. data/spec/sub_user_spec.rb +63 -68
  94. data/test.rb +5 -0
  95. metadata +90 -58
  96. data/.travis.yml +0 -5
  97. data/spec/cassettes/sub_user/_management/should_get_all_subusers.yml +0 -54
@@ -0,0 +1,33 @@
1
+ module SendGridWebApi::ApiKeyModules
2
+ class Management < SendGridWebApi::ApiKey
3
+ APIKEY_URL = "api_keys"
4
+
5
+ def get options = {}
6
+ management_get_url = APIKEY_URL
7
+ if options.key?(:apikey_id)
8
+ management_get_url += "/#{options[:apikey_id]}"
9
+ options.delete(:apikey_id)
10
+ end
11
+ query_api(management_get_url, process_header_options(options))
12
+ end
13
+
14
+ def create options = {}
15
+ query_post_json_api(APIKEY_URL, process_header_options(options))
16
+ end
17
+
18
+ def delete apikey_id, options = {}
19
+ query_delete_api(APIKEY_URL+"/#{apikey_id}", process_header_options(options))
20
+ end
21
+
22
+ def update apikey_id, options = {}
23
+ query_patch_api(APIKEY_URL+"/#{apikey_id}", process_header_options(options))
24
+ end
25
+
26
+ private
27
+ def process_header_options options
28
+ on_behalf_of = options.delete(:on_behalf_of)
29
+ options.merge!({ headers: { "on-behalf-of" => on_behalf_of } }) unless on_behalf_of.nil?
30
+ options
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,10 @@
1
+ #loading modules
2
+ %w(management).each do |mod|
3
+ require "api_key/" + mod
4
+ end
5
+
6
+ module SendGridWebApi::ApiKeyModules
7
+ def management
8
+ @management_instance ||= Management.new(@api_key)
9
+ end
10
+ end
@@ -0,0 +1,11 @@
1
+ module SendGridWebApi
2
+ autoload :ApiKeyModules, 'api_key/modules'
3
+
4
+ class ApiKey < Base
5
+ include SendGridWebApi::ApiKeyModules
6
+
7
+ def base_url
8
+ "https://api.sendgrid.com/v3/"
9
+ end
10
+ end
11
+ end
data/lib/base.rb CHANGED
@@ -1,39 +1,73 @@
1
+ require 'faraday_middleware'
2
+
1
3
  module SendGridWebApi
2
- autoload :Faraday, 'middlewares/sendgrid_response'
3
-
4
4
  class Base
5
- attr_accessor :api_user, :api_key
5
+ attr_accessor :api_key
6
6
 
7
- def initialize api_user, api_key
8
- @api_user = api_user
7
+ def initialize api_key
9
8
  @api_key = api_key
10
9
  end
11
-
10
+
12
11
  def make_request_url url, options
13
12
  "#{url}?#{builder_options(options)}"
14
13
  end
15
14
 
16
15
  def builder_options options
17
- options.merge!(:api_user => @api_user, :api_key => @api_key)
18
16
  to_query(options)
19
17
  end
20
18
 
21
19
  def query_api url, options
22
- session.get(make_request_url(url, options)).body
20
+ headers = options.delete(:headers)
21
+ (session.get(make_request_url(url, options)) do |req|
22
+ req.headers.merge!(headers) unless headers.nil?
23
+ end).body
23
24
  end
24
25
 
25
26
  def query_post_api url, options
26
- builder_options(options)
27
- session.post(url, builder_options(options)).body
27
+ headers = options.delete(:headers)
28
+ (session.post(url, builder_options(options)) do |req|
29
+ req.headers.merge!(headers) unless headers.nil?
30
+ end).body
28
31
  end
29
-
32
+
33
+ def query_post_json_api url, options
34
+ headers = options.delete(:headers)
35
+ (session.post(url) do |req|
36
+ req.headers[:content_type] = 'application/json'
37
+ req.headers.merge!(headers) unless headers.nil?
38
+ req.body = options.to_json
39
+ end).body
40
+ end
41
+
42
+ def query_patch_api url, options
43
+ headers = options.delete(:headers)
44
+ (session.patch(url) do |req|
45
+ req.headers[:content_type] = 'application/json'
46
+ req.headers.merge!(headers) unless headers.nil?
47
+ req.body = options.to_json
48
+ end).body
49
+ end
50
+
51
+ def query_delete_api url, options
52
+ headers = options.delete(:headers)
53
+ (session.delete(make_request_url(url, options)) do |req|
54
+ req.headers.merge!(headers) unless headers.nil?
55
+ end).body
56
+ end
57
+
30
58
  def to_query(options)
31
59
  Faraday::Utils.build_nested_query(options)
32
60
  end
33
61
 
34
62
  def session
35
- @connection ||= ::Faraday.new base_url do |conn|
36
- conn.use Faraday::Response::SendGridWebApi
63
+ @connection ||= ::Faraday.new(
64
+ url: base_url,
65
+ headers: {"Authorization" => "Bearer #{@api_key}"}
66
+ ) do |conn|
67
+ # Forces the connection request and response to be JSON even though
68
+ # Sendgrids API headers do not specify the content type is JSON
69
+ conn.request :url_encoded
70
+ conn.response :json #, :content_type => /\bjson$/
37
71
  conn.adapter Faraday.default_adapter
38
72
  end
39
73
  end
data/lib/helper.rb CHANGED
@@ -1,33 +1,33 @@
1
1
  module SendGridWebApi::Helper
2
2
  extend self
3
3
 
4
- def run_sendgrid_query(username, password)
5
- @client = SendGridWebApi::Client.new(username, password)
4
+ def run_sendgrid_query(apikey)
5
+ @client = SendGridWebApi::Client.new(apikey)
6
6
  result = yield
7
7
  raise "it returns the following errors: #{result}" unless result.eql?({"message"=>"success"})
8
8
  end
9
9
 
10
10
  ###this accepts subuser array
11
- def create_sub_user_account(username, password, users)
11
+ def create_sub_user_account(apikey, users)
12
12
  users.each do |user, data|
13
13
  #load users
14
- run_sendgrid_query(username, password) do
14
+ run_sendgrid_query(apikey) do
15
15
  @client.sub_user.management.add(data[:account].merge!(:username => user))
16
16
  end
17
17
 
18
18
  #active user for send email
19
- run_sendgrid_query(username, password){@client.sub_user.management.enable(:user => user)}
19
+ run_sendgrid_query(apikey){@client.sub_user.management.enable(:user => user)}
20
20
 
21
21
  #assign ip
22
22
  unless data[:assigned_ips].empty?
23
- run_sendgrid_query(username, password){@client.sub_user.ip_management.assign_ip :user => user, :ip => data[:assigned_ips]}
23
+ run_sendgrid_query(apikey){@client.sub_user.ip_management.assign_ip :user => user, :ip => data[:assigned_ips]}
24
24
  end
25
25
  #load apps
26
26
  unless data[:applications].empty?
27
27
  data[:applications].each do |app_name, options|
28
- run_sendgrid_query(username, password){@client.sub_user.apps.activate(:user => user, :name => app_name)}
28
+ run_sendgrid_query(apikey){@client.sub_user.apps.activate(:user => user, :name => app_name)}
29
29
  unless options.empty?
30
- run_sendgrid_query(username, password){@client.sub_user.apps.customize(options.merge!(:user => user, :name => app_name))}
30
+ run_sendgrid_query(apikey){@client.sub_user.apps.customize(options.merge!(:user => user, :name => app_name))}
31
31
  end
32
32
  end
33
33
  end
@@ -3,3 +3,4 @@ require 'base'
3
3
  require 'helper'
4
4
  require 'webapi_client'
5
5
  require 'subuser_client'
6
+ require 'apikey_client'
@@ -6,63 +6,63 @@ end
6
6
 
7
7
  module SendGridWebApi::SubUserModules
8
8
  def management
9
- @management_instance ||= Management.new(@api_user, @api_key)
9
+ @management_instance ||= Management.new(@api_key)
10
10
  end
11
11
 
12
12
  def bounces
13
- @bounce_instance ||= Bounce.new(@api_user, @api_key)
13
+ @bounce_instance ||= Bounce.new(@api_key)
14
14
  end
15
15
 
16
16
  def unsubscribes
17
- @unsubscribe_instance ||= Unsubscribe.new(@api_user, @api_key)
17
+ @unsubscribe_instance ||= Unsubscribe.new(@api_key)
18
18
  end
19
19
 
20
20
  def spam
21
- @spam_instance ||= Spam.new(@api_user, @api_key)
21
+ @spam_instance ||= Spam.new(@api_key)
22
22
  end
23
23
 
24
24
  def invalid_emails
25
- @invalid_email_instance ||= InvalidEmail.new(@api_user, @api_key)
25
+ @invalid_email_instance ||= InvalidEmail.new(@api_key)
26
26
  end
27
27
 
28
28
  def event_notification
29
- @event_notification_instance ||= EventNotification.new(@api_user, @api_key)
29
+ @event_notification_instance ||= EventNotification.new(@api_key)
30
30
  end
31
31
 
32
32
  def parse_email
33
- @parse_instance ||= ParseEmail.new(@api_user, @api_key)
33
+ @parse_instance ||= ParseEmail.new(@api_key)
34
34
  end
35
35
 
36
36
  def limits
37
- @limit_instance ||= Limit.new(@api_user, @api_key)
37
+ @limit_instance ||= Limit.new(@api_key)
38
38
  end
39
39
 
40
40
  def stats
41
- @stats_instance ||= Stats.new(@api_user, @api_key)
41
+ @stats_instance ||= Stats.new(@api_key)
42
42
  end
43
43
 
44
44
  def ip_management
45
- @ip_management_instance ||= IpManagement.new(@api_user, @api_key)
45
+ @ip_management_instance ||= IpManagement.new(@api_key)
46
46
  end
47
47
 
48
48
  def monitor_records
49
- @monitor_record_instance ||= MonitorRecord.new(@api_user, @api_key)
49
+ @monitor_record_instance ||= MonitorRecord.new(@api_key)
50
50
  end
51
51
 
52
52
  def white_label
53
- @white_label_instance ||= WhiteLabel.new(@api_user, @api_key)
53
+ @white_label_instance ||= WhiteLabel.new(@api_key)
54
54
  end
55
55
 
56
56
  def iframe
57
- @iframe_instance ||= Iframe.new(@api_user, @api_key)
57
+ @iframe_instance ||= Iframe.new(@api_key)
58
58
  end
59
59
 
60
60
  def auth
61
- @auth_instance ||= Auth.new(@api_user, @api_key)
61
+ @auth_instance ||= Auth.new(@api_key)
62
62
  end
63
63
 
64
64
  def apps
65
- @app_instance ||= App.new(@api_user, @api_key)
65
+ @app_instance ||= App.new(@api_key)
66
66
  end
67
67
 
68
68
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module SendGridWebApi
2
- VERSION = "0.0.2"
3
- end
2
+ VERSION = "0.1.2"
3
+ end
@@ -9,5 +9,10 @@ module SendGridWebApi::Modules
9
9
  block_delete_url = "blocks.delete.json"
10
10
  query_api(block_delete_url, options)
11
11
  end
12
+
13
+ def count options = {}
14
+ block_count_url = "blocks.count.json"
15
+ query_api(block_count_url, options)
16
+ end
12
17
  end
13
18
  end
@@ -9,5 +9,10 @@ module SendGridWebApi::Modules
9
9
  bounce_delete_url = "bounces.delete.json"
10
10
  query_api(bounce_delete_url, options)
11
11
  end
12
+
13
+ def count options = {}
14
+ bounces_count_url = "bounces.count.json"
15
+ query_api(bounces_count_url, options)
16
+ end
12
17
  end
13
18
  end
@@ -5,46 +5,50 @@ end
5
5
 
6
6
  module SendGridWebApi::Modules
7
7
  def bounces
8
- @bounce_instance ||= Bounce.new(@api_user, @api_key)
8
+ @bounce_instance ||= Bounce.new(@api_key)
9
9
  end
10
10
 
11
11
  def blocks
12
- @block_instance ||= Block.new(@api_user, @api_key)
12
+ @block_instance ||= Block.new(@api_key)
13
13
  end
14
14
 
15
15
  def spam
16
- @spam_instance ||= Spam.new(@api_user, @api_key)
16
+ @spam_instance ||= Spam.new(@api_key)
17
17
  end
18
18
 
19
19
  def invalid_emails
20
- @invalid_email_instance ||= InvalidEmail.new(@api_user, @api_key)
20
+ @invalid_email_instance ||= InvalidEmail.new(@api_key)
21
21
  end
22
22
 
23
23
  def unsubscribes
24
- @unsubscribe_instance ||= Unsubscribe.new(@api_user, @api_key)
24
+ @unsubscribe_instance ||= Unsubscribe.new(@api_key)
25
25
  end
26
26
 
27
27
  def parse_email
28
- @parse_email_instance ||= ParseEmail.new(@api_user, @api_key)
28
+ @parse_email_instance ||= ParseEmail.new(@api_key)
29
29
  end
30
30
 
31
31
  def event_notification
32
- @event_notification_instance ||= EventNotification.new(@api_user, @api_key)
32
+ @event_notification_instance ||= EventNotification.new(@api_key)
33
33
  end
34
34
 
35
35
  def stats
36
- @stats_instance ||= Stats.new(@api_user, @api_key)
36
+ @stats_instance ||= Stats.new(@api_key)
37
37
  end
38
38
 
39
39
  def profile
40
- @profile_instance ||= Profile.new(@api_user, @api_key)
40
+ @profile_instance ||= Profile.new(@api_key)
41
41
  end
42
42
 
43
43
  def mail
44
- @mail_instance ||= Mail.new(@api_user, @api_key)
44
+ @mail_instance ||= Mail.new(@api_key)
45
45
  end
46
46
 
47
47
  def sub_user
48
- @sub_user ||= SendGridWebApi::SubUser.new(@api_user, @api_key)
48
+ @sub_user ||= SendGridWebApi::SubUser.new(@api_key)
49
+ end
50
+
51
+ def apikey
52
+ @apikey ||= SendGridWebApi::ApiKey.new(@api_key)
49
53
  end
50
54
  end
@@ -1,3 +1,3 @@
1
1
  module SendGridWebApi
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/webapi_client.rb CHANGED
@@ -5,7 +5,7 @@ module SendGridWebApi
5
5
  include SendGridWebApi::Modules
6
6
 
7
7
  def base_url
8
- "https://sendgrid.com/api/"
8
+ "https://api.sendgrid.com/api/"
9
9
  end
10
10
 
11
11
  end
@@ -1,6 +1,6 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
- require 'version'
3
+ require "version"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "sendgrid_webapi"
@@ -8,9 +8,10 @@ Gem::Specification.new do |s|
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["kylejginavan", "chebyte"]
10
10
  s.email = ["kylejginavan@gmail.com", "maurotorres@gmail.com"]
11
- s.homepage = "https://github.com/kylejginavan/sendgrid_smtpapi"
11
+ s.homepage = "https://github.com/kylejginavan/sendgrid_webapi"
12
12
  s.summary = %q{SendGrid WEB API gem fo Rails}
13
13
  s.description = %q{Gem for access to SendGrid WEB API from rails}
14
+ s.license = "MIT"
14
15
 
15
16
  s.rubyforge_project = "sendgrid_webapi"
16
17
 
@@ -18,10 +19,13 @@ Gem::Specification.new do |s|
18
19
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
20
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
21
  s.require_paths = ["lib"]
21
- s.add_development_dependency "rspec", "~> 2.10.0"
22
- s.add_development_dependency "webmock", "~> 1.8.7"
23
- s.add_development_dependency "vcr", "~> 2.1.1"
24
- s.add_dependency "faraday", "~> 0.8.0"
25
- s.add_dependency "json", "~> 1.8.0"
26
-
22
+
23
+ s.add_dependency "faraday", "~> 1.0"
24
+ s.add_dependency "faraday_middleware", "~> 1.0"
25
+ s.add_dependency "json", "~> 2.0"
26
+
27
+ s.add_development_dependency "rspec", "~> 3.4"
28
+ s.add_development_dependency "webmock", "~> 3.12"
29
+ s.add_development_dependency "vcr", "~> 6.0"
30
+ s.add_development_dependency "rspec_junit_formatter", "~> 0.3", ">= 0.3.0"
27
31
  end
@@ -1,48 +1,36 @@
1
- ---
2
- http_interactions:
3
- - request:
1
+ ---
2
+ http_interactions:
3
+ - request:
4
4
  method: get
5
- uri: https://sendgrid.com/api/blocks.get.json?api_key=pass&api_user=user
6
- body:
5
+ uri: https://api.sendgrid.com/api/blocks.get.json
6
+ body:
7
7
  encoding: US-ASCII
8
- string: ""
9
- headers:
10
- Accept-Encoding:
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.9
12
+ Accept-Encoding:
11
13
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
- Accept:
13
- - "*/*"
14
- User-Agent:
15
- - Ruby
16
- response:
17
- status:
14
+ Accept:
15
+ - '*/*'
16
+ response:
17
+ status:
18
18
  code: 200
19
19
  message: OK
20
- headers:
21
- Server:
22
- - nginx/0.7.65
23
- Date:
24
- - Mon, 02 Jul 2012 14:42:51 GMT
25
- Content-Type:
26
- - application/json
27
- Connection:
20
+ headers:
21
+ Server:
22
+ - nginx/1.4.2
23
+ Date:
24
+ - Fri, 17 Jan 2014 01:37:37 GMT
25
+ Content-Type:
26
+ - text/html
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
28
30
  - keep-alive
29
- X-Powered-By:
30
- - PHP/5.3.2-1ubuntu4.14
31
- Cache-Control:
32
- - private
33
- Set-Cookie:
34
- - sendgrid_frontend=f0e7344786a2d782f7bab47e30ecf283:de5a5348f999469fb4a7e2216d67fa03459c9f52; expires=Wed, 01-Aug-2012 14:42:27 GMT; path=/; httponly
35
- Content-Encoding:
36
- - gzip
37
- Vary:
38
- - Accept-Encoding
39
- Content-Length:
40
- - "28"
41
- body:
42
- encoding: ASCII-8BIT
43
- string: !binary |
44
- H4sIAAAAAAAAA4qOBQAAAP//AwApu0wNAgAAAA==
45
-
31
+ body:
32
+ encoding: UTF-8
33
+ string: '[]'
46
34
  http_version:
47
- recorded_at: Mon, 02 Jul 2012 14:42:51 GMT
48
- recorded_with: VCR 2.1.1
35
+ recorded_at: Fri, 17 Jan 2014 01:37:37 GMT
36
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,36 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.sendgrid.com/api/blocks.count.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.9
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - '*/*'
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Server:
22
+ - nginx/1.4.2
23
+ Date:
24
+ - Fri, 17 Jan 2014 01:37:40 GMT
25
+ Content-Type:
26
+ - text/html
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
30
+ - keep-alive
31
+ body:
32
+ encoding: UTF-8
33
+ string: '{"count": 0}'
34
+ http_version:
35
+ recorded_at: Fri, 17 Jan 2014 01:37:40 GMT
36
+ recorded_with: VCR 2.8.0
@@ -1,49 +1,36 @@
1
- ---
2
- http_interactions:
3
- - request:
1
+ ---
2
+ http_interactions:
3
+ - request:
4
4
  method: get
5
- uri: https://sendgrid.com/api/blocks.delete.json?api_key=pass&api_user=user&email=test@example.com
6
- body:
5
+ uri: https://api.sendgrid.com/api/blocks.delete.json?email=test@example.com
6
+ body:
7
7
  encoding: US-ASCII
8
- string: ""
9
- headers:
10
- Accept-Encoding:
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.9
12
+ Accept-Encoding:
11
13
  - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
- Accept:
13
- - "*/*"
14
- User-Agent:
15
- - Ruby
16
- response:
17
- status:
14
+ Accept:
15
+ - '*/*'
16
+ response:
17
+ status:
18
18
  code: 200
19
19
  message: OK
20
- headers:
21
- Server:
22
- - nginx/0.7.65
23
- Date:
24
- - Mon, 02 Jul 2012 14:42:53 GMT
25
- Content-Type:
26
- - application/json
27
- Connection:
20
+ headers:
21
+ Server:
22
+ - nginx/1.4.2
23
+ Date:
24
+ - Fri, 17 Jan 2014 01:37:38 GMT
25
+ Content-Type:
26
+ - text/html
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
28
30
  - keep-alive
29
- X-Powered-By:
30
- - PHP/5.3.2-1ubuntu4.14
31
- Cache-Control:
32
- - private
33
- Set-Cookie:
34
- - sendgrid_frontend=b1552d80418879e57ecce9ff13f7e16c:60b4e990d7fa4abbf759b653ee408ab726e8db97; expires=Wed, 01-Aug-2012 14:42:29 GMT; path=/; httponly
35
- Content-Encoding:
36
- - gzip
37
- Vary:
38
- - Accept-Encoding
39
- Content-Length:
40
- - "60"
41
- body:
42
- encoding: ASCII-8BIT
43
- string: !binary |
44
- H4sIAAAAAAAAA6pWyk0tLk5MT1WyUnLNTczMUUjJTy1WyMsvUUityCwuUaoF
45
- AAAA//8DACrxmdciAAAA
46
-
31
+ body:
32
+ encoding: UTF-8
33
+ string: '{"message": "Email does not exist"}'
47
34
  http_version:
48
- recorded_at: Mon, 02 Jul 2012 14:42:53 GMT
49
- recorded_with: VCR 2.1.1
35
+ recorded_at: Fri, 17 Jan 2014 01:37:39 GMT
36
+ recorded_with: VCR 2.8.0