sendgrid_webapi 0.0.2 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
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