sendgrid4r 1.8.1 → 1.10.0

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 (145) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +6 -2
  3. data/README.md +1 -0
  4. data/lib/sendgrid4r/factory/campaign_factory.rb +18 -5
  5. data/lib/sendgrid4r/factory/condition_factory.rb +1 -1
  6. data/lib/sendgrid4r/factory/mail_factory.rb +57 -0
  7. data/lib/sendgrid4r/factory/segment_factory.rb +2 -5
  8. data/lib/sendgrid4r/factory/version_factory.rb +1 -1
  9. data/lib/sendgrid4r/rest/api.rb +48 -49
  10. data/lib/sendgrid4r/rest/api_keys_management/api_keys.rb +75 -0
  11. data/lib/sendgrid4r/rest/api_keys_management/permissions.rb +31 -0
  12. data/lib/sendgrid4r/rest/blocks.rb +49 -68
  13. data/lib/sendgrid4r/rest/bounces.rb +45 -64
  14. data/lib/sendgrid4r/rest/cancel_scheduled_sends.rb +53 -72
  15. data/lib/sendgrid4r/rest/categories.rb +31 -0
  16. data/lib/sendgrid4r/rest/email_activity.rb +72 -0
  17. data/lib/sendgrid4r/rest/invalid_emails.rb +50 -68
  18. data/lib/sendgrid4r/rest/ip_access_management.rb +86 -111
  19. data/lib/sendgrid4r/rest/ips/addresses.rb +50 -59
  20. data/lib/sendgrid4r/rest/ips/pools.rb +42 -53
  21. data/lib/sendgrid4r/rest/ips/warmup.rb +46 -55
  22. data/lib/sendgrid4r/rest/mail/address.rb +14 -0
  23. data/lib/sendgrid4r/rest/mail/attachment.rb +22 -0
  24. data/lib/sendgrid4r/rest/mail/content.rb +10 -0
  25. data/lib/sendgrid4r/rest/mail/mail.rb +28 -0
  26. data/lib/sendgrid4r/rest/mail/mail_settings.rb +62 -0
  27. data/lib/sendgrid4r/rest/mail/params.rb +64 -0
  28. data/lib/sendgrid4r/rest/mail/personalization.rb +33 -0
  29. data/lib/sendgrid4r/rest/mail/tracking_settings.rb +74 -0
  30. data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/custom_fields.rb +12 -27
  31. data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/lists.rb +20 -34
  32. data/lib/sendgrid4r/rest/marketing_campaigns/contacts/recipients.rb +134 -0
  33. data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/reserved_fields.rb +6 -9
  34. data/lib/sendgrid4r/rest/marketing_campaigns/contacts/segments.rb +86 -0
  35. data/lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb +119 -0
  36. data/lib/sendgrid4r/rest/marketing_campaigns/senders.rb +101 -0
  37. data/lib/sendgrid4r/rest/request.rb +61 -63
  38. data/lib/sendgrid4r/rest/settings/enforced_tls.rb +23 -26
  39. data/lib/sendgrid4r/rest/settings/mail.rb +167 -183
  40. data/lib/sendgrid4r/rest/settings/partner.rb +33 -36
  41. data/lib/sendgrid4r/rest/settings/settings.rb +17 -22
  42. data/lib/sendgrid4r/rest/settings/tracking.rb +97 -107
  43. data/lib/sendgrid4r/rest/sm/global_unsubscribes.rb +52 -60
  44. data/lib/sendgrid4r/rest/sm/groups.rb +52 -58
  45. data/lib/sendgrid4r/rest/sm/sm.rb +15 -17
  46. data/lib/sendgrid4r/rest/sm/suppressions.rb +50 -67
  47. data/lib/sendgrid4r/rest/spam_reports.rb +49 -69
  48. data/lib/sendgrid4r/rest/stats/advanced.rb +100 -102
  49. data/lib/sendgrid4r/rest/stats/category.rb +31 -33
  50. data/lib/sendgrid4r/rest/stats/global.rb +17 -19
  51. data/lib/sendgrid4r/rest/stats/parse.rb +18 -20
  52. data/lib/sendgrid4r/rest/stats/stats.rb +59 -69
  53. data/lib/sendgrid4r/rest/stats/subuser.rb +70 -32
  54. data/lib/sendgrid4r/rest/subusers.rb +106 -134
  55. data/lib/sendgrid4r/rest/transactional_templates/templates.rb +63 -0
  56. data/lib/sendgrid4r/rest/transactional_templates/versions.rb +90 -0
  57. data/lib/sendgrid4r/rest/users.rb +125 -57
  58. data/lib/sendgrid4r/rest/webhooks/event.rb +36 -42
  59. data/lib/sendgrid4r/rest/webhooks/parse.rb +28 -37
  60. data/lib/sendgrid4r/rest/whitelabel/domains.rb +176 -222
  61. data/lib/sendgrid4r/rest/whitelabel/ips.rb +107 -128
  62. data/lib/sendgrid4r/rest/whitelabel/links.rb +131 -167
  63. data/lib/sendgrid4r/version.rb +1 -1
  64. data/lib/sendgrid4r.rb +23 -13
  65. data/sendgrid4r.gemspec +1 -1
  66. data/spec/client_spec.rb +12 -1
  67. data/spec/factory/campaign_factory_spec.rb +75 -35
  68. data/spec/factory/condition_factory_spec.rb +19 -18
  69. data/spec/factory/segment_factory_spec.rb +28 -21
  70. data/spec/factory/version_factory_spec.rb +28 -27
  71. data/spec/photo.jpg +0 -0
  72. data/spec/rest/api_keys_management/api_keys_spec.rb +174 -0
  73. data/spec/rest/api_keys_management/permissions_spec.rb +54 -0
  74. data/spec/rest/blocks_spec.rb +78 -106
  75. data/spec/rest/bounces_spec.rb +91 -118
  76. data/spec/rest/cancel_scheduled_sends_spec.rb +94 -149
  77. data/spec/rest/categories_spec.rb +77 -0
  78. data/spec/rest/email_activity_spec.rb +151 -0
  79. data/spec/rest/invalid_emails_spec.rb +85 -119
  80. data/spec/rest/ip_access_management_spec.rb +157 -195
  81. data/spec/rest/ips/addresses_spec.rb +94 -122
  82. data/spec/rest/ips/pools_spec.rb +84 -112
  83. data/spec/rest/ips/warmup_spec.rb +63 -71
  84. data/spec/rest/mail/address_spec.rb +28 -0
  85. data/spec/rest/mail/attachment_spec.rb +48 -0
  86. data/spec/rest/mail/content_spec.rb +32 -0
  87. data/spec/rest/mail/mail_settings_spec.rb +51 -0
  88. data/spec/rest/mail/mail_spec.rb +136 -0
  89. data/spec/rest/mail/params_spec.rb +152 -0
  90. data/spec/rest/mail/personalization_spec.rb +66 -0
  91. data/spec/rest/mail/tracking_settings_spec.rb +63 -0
  92. data/spec/rest/marketing_campaigns/contacts/custom_fields_spec.rb +146 -0
  93. data/spec/rest/marketing_campaigns/contacts/lists_spec.rb +307 -0
  94. data/spec/rest/marketing_campaigns/contacts/recipients_spec.rb +331 -0
  95. data/spec/rest/marketing_campaigns/contacts/reserved_fields_spec.rb +119 -0
  96. data/spec/rest/marketing_campaigns/contacts/segments_spec.rb +268 -0
  97. data/spec/rest/marketing_campaigns/marketing_campaigns_spec.rb +427 -0
  98. data/spec/rest/marketing_campaigns/senders_spec.rb +230 -0
  99. data/spec/rest/settings/enforced_tls_spec.rb +38 -54
  100. data/spec/rest/settings/mail_spec.rb +227 -330
  101. data/spec/rest/settings/partner_spec.rb +40 -59
  102. data/spec/rest/settings/settings_spec.rb +44 -42
  103. data/spec/rest/settings/tracking_spec.rb +130 -189
  104. data/spec/rest/sm/global_unsubscribes_spec.rb +47 -72
  105. data/spec/rest/sm/groups_spec.rb +88 -123
  106. data/spec/rest/sm/sm_spec.rb +32 -30
  107. data/spec/rest/sm/suppressions_spec.rb +105 -140
  108. data/spec/rest/spam_reports_spec.rb +81 -109
  109. data/spec/rest/stats/advanced_spec.rb +67 -125
  110. data/spec/rest/stats/category_spec.rb +27 -45
  111. data/spec/rest/stats/global_spec.rb +34 -42
  112. data/spec/rest/stats/parse_spec.rb +32 -30
  113. data/spec/rest/stats/stats_spec.rb +174 -172
  114. data/spec/rest/stats/subuser_spec.rb +97 -57
  115. data/spec/rest/subusers_spec.rb +156 -209
  116. data/spec/rest/transactional_templates/templates_spec.rb +199 -0
  117. data/spec/rest/transactional_templates/versions_spec.rb +228 -0
  118. data/spec/rest/users_spec.rb +176 -91
  119. data/spec/rest/webhooks/event_spec.rb +59 -85
  120. data/spec/rest/webhooks/parse_spec.rb +51 -71
  121. data/spec/rest/whitelabel/domains_spec.rb +333 -513
  122. data/spec/rest/whitelabel/ips_spec.rb +109 -147
  123. data/spec/rest/whitelabel/links_spec.rb +181 -265
  124. metadata +70 -40
  125. data/lib/sendgrid4r/rest/api_keys/api_keys.rb +0 -80
  126. data/lib/sendgrid4r/rest/api_keys/permissions.rb +0 -33
  127. data/lib/sendgrid4r/rest/campaigns/campaigns.rb +0 -126
  128. data/lib/sendgrid4r/rest/categories/categories.rb +0 -43
  129. data/lib/sendgrid4r/rest/contacts/recipients.rb +0 -150
  130. data/lib/sendgrid4r/rest/contacts/segments.rb +0 -97
  131. data/lib/sendgrid4r/rest/email_activity/email_activity.rb +0 -81
  132. data/lib/sendgrid4r/rest/templates/templates.rb +0 -69
  133. data/lib/sendgrid4r/rest/templates/versions.rb +0 -95
  134. data/spec/rest/api_keys/api_keys_spec.rb +0 -210
  135. data/spec/rest/api_keys/permissions_spec.rb +0 -65
  136. data/spec/rest/campaigns/campaigns_spec.rb +0 -492
  137. data/spec/rest/categories/categories_spec.rb +0 -96
  138. data/spec/rest/contacts/custom_fields_spec.rb +0 -174
  139. data/spec/rest/contacts/lists_spec.rb +0 -372
  140. data/spec/rest/contacts/recipients_spec.rb +0 -343
  141. data/spec/rest/contacts/reserved_fields_spec.rb +0 -146
  142. data/spec/rest/contacts/segments_spec.rb +0 -307
  143. data/spec/rest/email_activity/email_activity_spec.rb +0 -179
  144. data/spec/rest/templates/templates_spec.rb +0 -222
  145. data/spec/rest/templates/versions_spec.rb +0 -252
@@ -1,97 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- module SendGrid4r
4
- module REST
5
- module Contacts
6
- #
7
- # SendGrid Web API v3 Contacts - Segments
8
- #
9
- module Segments
10
- include SendGrid4r::REST::Request
11
-
12
- Condition = Struct.new(
13
- :field, :value, :operator, :and_or
14
- )
15
- Segment = Struct.new(
16
- :id, :name, :list_id, :conditions, :recipient_count
17
- )
18
- Segments = Struct.new(:segments)
19
-
20
- def self.url(segment_id = nil)
21
- url = "#{BASE_URL}/contactdb/segments"
22
- url = "#{url}/#{segment_id}" unless segment_id.nil?
23
- url
24
- end
25
-
26
- def self.create_condition(resp)
27
- return resp if resp.nil?
28
- Condition.new(
29
- resp['field'], resp['value'], resp['operator'], resp['and_or']
30
- )
31
- end
32
-
33
- def self.create_segment(resp)
34
- return resp if resp.nil?
35
- conditions = []
36
- resp['conditions'].each do |condition|
37
- conditions.push(
38
- SendGrid4r::REST::Contacts::Segments.create_condition(condition)
39
- )
40
- end
41
- Segment.new(
42
- resp['id'],
43
- resp['name'],
44
- resp['list_id'],
45
- conditions,
46
- resp['recipient_count']
47
- )
48
- end
49
-
50
- def self.create_segments(resp)
51
- return resp if resp.nil?
52
- segments = []
53
- resp['segments'].each do |segment|
54
- segments.push(
55
- SendGrid4r::REST::Contacts::Segments.create_segment(segment)
56
- )
57
- end
58
- Segments.new(segments)
59
- end
60
-
61
- def post_segment(params:, &block)
62
- endpoint = SendGrid4r::REST::Contacts::Segments.url
63
- resp = post(@auth, endpoint, params.to_h, &block)
64
- SendGrid4r::REST::Contacts::Segments.create_segment(resp)
65
- end
66
-
67
- def get_segments(&block)
68
- resp = get(@auth, SendGrid4r::REST::Contacts::Segments.url, &block)
69
- SendGrid4r::REST::Contacts::Segments.create_segments(resp)
70
- end
71
-
72
- def get_segment(segment_id:, &block)
73
- endpoint = SendGrid4r::REST::Contacts::Segments.url(segment_id)
74
- resp = get(@auth, endpoint, &block)
75
- SendGrid4r::REST::Contacts::Segments.create_segment(resp)
76
- end
77
-
78
- def patch_segment(segment_id:, params:, &block)
79
- endpoint = SendGrid4r::REST::Contacts::Segments.url(segment_id)
80
- resp = patch(@auth, endpoint, params, &block)
81
- SendGrid4r::REST::Contacts::Segments.create_segment(resp)
82
- end
83
-
84
- def delete_segment(segment_id:, &block)
85
- endpoint = SendGrid4r::REST::Contacts::Segments.url(segment_id)
86
- delete(@auth, endpoint, &block)
87
- end
88
-
89
- def get_recipients_on_segment(segment_id:, &block)
90
- url = SendGrid4r::REST::Contacts::Segments.url(segment_id)
91
- resp = get(@auth, "#{url}/recipients", nil, &block)
92
- SendGrid4r::REST::Contacts::Recipients.create_recipients(resp)
93
- end
94
- end
95
- end
96
- end
97
- end
@@ -1,81 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- module SendGrid4r
4
- module REST
5
- #
6
- # SendGrid Web API v3 EmailActivity
7
- #
8
- module EmailActivity
9
- include SendGrid4r::REST::Request
10
-
11
- #
12
- # SendGrid Web API v3 Stats - AggregatedBy
13
- #
14
- module Event
15
- BOUNCES = 'bounces'
16
- CLICKS = 'clicks'
17
- DEFERRED = 'deferred'
18
- DELIVERED = 'delivered'
19
- DROPS = 'drops'
20
- GROUP_UNSUBSCRIBE = 'group_unsubscribe'
21
- GROUP_RESUBSCRIBE = 'group_resubscribe'
22
- OPENS = 'opens'
23
- PROCESSED = 'processed'
24
- PARSEAPI = 'parseapi'
25
- SPAM_REPORTS = 'spam_reports'
26
- UNSUBSCRIBE = 'unsubscribes'
27
- end
28
-
29
- Activity = Struct.new(
30
- :email, :event, :created, :category, :smtp_id, :asm_group_id,
31
- :msg_id, :ip, :url, :reason
32
- )
33
-
34
- def self.url
35
- url = "#{BASE_URL}/email_activity"
36
- url
37
- end
38
-
39
- def self.create_activities(resp)
40
- return resp if resp.nil?
41
- activities = []
42
- resp.each do |activity|
43
- activities.push(
44
- SendGrid4r::REST::EmailActivity.create_activity(activity)
45
- )
46
- end
47
- activities
48
- end
49
-
50
- def self.create_activity(resp)
51
- return resp if resp.nil?
52
- Activity.new(
53
- resp['email'],
54
- resp['event'],
55
- resp['created'].nil? ? nil : Time.at(resp['created']),
56
- resp['category'],
57
- resp['smtp_id'],
58
- resp['asm_group_id'],
59
- resp['msg_id'],
60
- resp['ip'],
61
- resp['url'],
62
- resp['reason']
63
- )
64
- end
65
-
66
- def get_email_activities(
67
- email: nil, events: nil, exclude_events: nil, start_time: nil,
68
- end_time: nil, &block
69
- )
70
- params = {}
71
- params['email'] = email unless email.nil?
72
- params['events'] = events unless events.nil?
73
- params['exclude_events'] = exclude_events unless exclude_events.nil?
74
- params['start_time'] = start_time.to_i unless start_time.nil?
75
- params['end_time'] = end_time.to_i unless end_time.nil?
76
- resp = get(@auth, SendGrid4r::REST::EmailActivity.url, params, &block)
77
- SendGrid4r::REST::EmailActivity.create_activities(resp)
78
- end
79
- end
80
- end
81
- end
@@ -1,69 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- module SendGrid4r
4
- module REST
5
- #
6
- # SendGrid Web API v3 Template Engine - Templates
7
- #
8
- module Templates
9
- include SendGrid4r::REST::Request
10
-
11
- Templates = Struct.new(:templates)
12
- Template = Struct.new(:id, :name, :versions)
13
-
14
- def self.url(temp_id = nil)
15
- url = "#{BASE_URL}/templates"
16
- url = "#{url}/#{temp_id}" unless temp_id.nil?
17
- url
18
- end
19
-
20
- def self.create_templates(resp)
21
- return resp if resp.nil?
22
- tmps = []
23
- resp['templates'].each do |template|
24
- tmps.push(SendGrid4r::REST::Templates.create_template(template))
25
- end
26
- Templates.new(tmps)
27
- end
28
-
29
- def self.create_template(resp)
30
- return resp if resp.nil?
31
- vers = []
32
- resp['versions'].each do |ver|
33
- vers.push(SendGrid4r::REST::Templates::Versions.create_version(ver))
34
- end
35
- Template.new(resp['id'], resp['name'], vers)
36
- end
37
-
38
- def post_template(name:, &block)
39
- endpoint = SendGrid4r::REST::Templates.url
40
- resp = post(@auth, endpoint, name: name, &block)
41
- SendGrid4r::REST::Templates.create_template(resp)
42
- end
43
-
44
- def get_templates(&block)
45
- resp = get(@auth, SendGrid4r::REST::Templates.url, &block)
46
- SendGrid4r::REST::Templates.create_templates(resp)
47
- end
48
-
49
- def get_template(template_id:, &block)
50
- endpoint = SendGrid4r::REST::Templates.url(template_id)
51
- resp = get(@auth, endpoint, &block)
52
- SendGrid4r::REST::Templates.create_template(resp)
53
- end
54
-
55
- def patch_template(template_id:, name:, &block)
56
- endpoint = SendGrid4r::REST::Templates.url(template_id)
57
- payload = {}
58
- payload['name'] = name
59
- resp = patch(@auth, endpoint, name: name, &block)
60
- SendGrid4r::REST::Templates.create_template(resp)
61
- end
62
-
63
- def delete_template(template_id:, &block)
64
- endpoint = SendGrid4r::REST::Templates.url(template_id)
65
- delete(@auth, endpoint, &block)
66
- end
67
- end
68
- end
69
- end
@@ -1,95 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- module SendGrid4r
4
- module REST
5
- #
6
- # SendGrid Web API v3 Template Engine - Templates
7
- #
8
- module Templates
9
- #
10
- # SendGrid Web API v3 Template Engine - Versions
11
- #
12
- module Versions
13
- include SendGrid4r::REST::Request
14
-
15
- Version = Struct.new(
16
- :id, :user_id, :template_id, :active, :name, :html_content,
17
- :plain_content, :subject, :updated_at)
18
-
19
- def self.create_version(resp)
20
- return resp if resp.nil?
21
- Version.new(
22
- resp['id'],
23
- resp['user_id'],
24
- resp['template_id'],
25
- resp['active'],
26
- resp['name'],
27
- resp['html_content'],
28
- resp['plain_content'],
29
- resp['subject'],
30
- resp['updated_at'])
31
- end
32
-
33
- def self.url(temp_id, ver_id = nil)
34
- url = "#{BASE_URL}/templates/#{temp_id}/versions"
35
- url = "#{url}/#{ver_id}" unless ver_id.nil?
36
- url
37
- end
38
-
39
- def post_version(template_id:, version:, &block)
40
- endpoint = SendGrid4r::REST::Templates::Versions.url(template_id)
41
- resp = post(
42
- @auth,
43
- endpoint,
44
- remove_uneditable_keys(version.to_h),
45
- &block
46
- )
47
- SendGrid4r::REST::Templates::Versions.create_version(resp)
48
- end
49
-
50
- def activate_version(template_id:, version_id:, &block)
51
- url = SendGrid4r::REST::Templates::Versions.url(
52
- template_id, version_id
53
- )
54
- resp = post(@auth, "#{url}/activate", &block)
55
- SendGrid4r::REST::Templates::Versions.create_version(resp)
56
- end
57
-
58
- def get_version(template_id:, version_id:, &block)
59
- resp = get(
60
- @auth,
61
- SendGrid4r::REST::Templates::Versions.url(template_id, version_id),
62
- &block
63
- )
64
- SendGrid4r::REST::Templates::Versions.create_version(resp)
65
- end
66
-
67
- def patch_version(template_id:, version_id:, version:, &block)
68
- resp = patch(
69
- @auth,
70
- SendGrid4r::REST::Templates::Versions.url(template_id, version_id),
71
- remove_uneditable_keys(version.to_h),
72
- &block
73
- )
74
- SendGrid4r::REST::Templates::Versions.create_version(resp)
75
- end
76
-
77
- def delete_version(template_id:, version_id:, &block)
78
- delete(
79
- @auth,
80
- SendGrid4r::REST::Templates::Versions.url(template_id, version_id),
81
- &block
82
- )
83
- end
84
-
85
- private
86
-
87
- def remove_uneditable_keys(hash_value)
88
- hash_value.delete(:id) if hash_value.key?(:id)
89
- hash_value.delete(:template_id) if hash_value.key?(:template_id)
90
- hash_value
91
- end
92
- end
93
- end
94
- end
95
- end
@@ -1,210 +0,0 @@
1
- # encoding: utf-8
2
- require File.dirname(__FILE__) + '/../../spec_helper'
3
-
4
- describe SendGrid4r::REST::ApiKeys do
5
- describe 'integration test', :it do
6
- before do
7
- begin
8
- Dotenv.load
9
- @client = SendGrid4r::Client.new(api_key: ENV['API_KEY'])
10
- @name1 = 'api_key_name1'
11
- @name2 = 'api_key_name2'
12
- @name1e = 'api_key_name1_edit'
13
-
14
- # celan up test env(lists)
15
- api_keys = @client.get_api_keys
16
- api_keys.result.each do |api_key|
17
- @client.delete_api_key(
18
- api_key_id: api_key.api_key_id
19
- ) if api_key.name == @name1
20
- @client.delete_api_key(
21
- api_key_id: api_key.api_key_id
22
- ) if api_key.name == @name2
23
- @client.delete_api_key(
24
- api_key_id: api_key.api_key_id
25
- ) if api_key.name == @name1e
26
- end
27
-
28
- # post api_key
29
- @api_key1 = @client.post_api_key(name: @name1, scopes: ['mail.send'])
30
- rescue RestClient::ExceptionWithResponse => e
31
- puts e.inspect
32
- raise e
33
- end
34
- end
35
-
36
- context 'without block call' do
37
- it '#get_api_keys' do
38
- begin
39
- api_keys = @client.get_api_keys
40
- expect(api_keys).to be_a(SendGrid4r::REST::ApiKeys::ApiKeys)
41
- expect(api_keys.result).to be_a(Array)
42
- rescue RestClient::ExceptionWithResponse => e
43
- puts e.inspect
44
- raise e
45
- end
46
- end
47
-
48
- it '#post_api_key' do
49
- begin
50
- api_key2 = @client.post_api_key(name: @name2)
51
- expect(api_key2).to be_a(SendGrid4r::REST::ApiKeys::ApiKey)
52
- expect(api_key2.name).to eq(@name2)
53
- expect(api_key2.api_key_id).to be_a(String)
54
- expect(api_key2.api_key).to be_a(String)
55
- rescue RestClient::ExceptionWithResponse => e
56
- puts e.inspect
57
- raise e
58
- end
59
- end
60
-
61
- it '#post_api_key with scopes' do
62
- begin
63
- api_key2 = @client.post_api_key(name: @name2, scopes: ['mail.send'])
64
- expect(api_key2).to be_a(SendGrid4r::REST::ApiKeys::ApiKey)
65
- expect(api_key2.name).to eq(@name2)
66
- expect(api_key2.api_key_id).to be_a(String)
67
- expect(api_key2.api_key).to be_a(String)
68
- expect(api_key2.scopes).to be_a(Array)
69
- rescue RestClient::ExceptionWithResponse => e
70
- puts e.inspect
71
- raise e
72
- end
73
- end
74
-
75
- it '#get_api_key' do
76
- begin
77
- api_key = @client.get_api_key(api_key_id: @api_key1.api_key_id)
78
- expect(api_key).to be_a(SendGrid4r::REST::ApiKeys::ApiKey)
79
- expect(api_key.api_key_id).to eq(@api_key1.api_key_id)
80
- expect(api_key.name).to eq('api_key_name1')
81
- expect(api_key.scopes).to be_a(Array)
82
- rescue RestClient::ExceptionWithResponse => e
83
- puts e.inspect
84
- raise e
85
- end
86
- end
87
-
88
- it '#delete_api_key' do
89
- begin
90
- @client.delete_api_key(api_key_id: @api_key1.api_key_id)
91
- rescue RestClient::ExceptionWithResponse => e
92
- puts e.inspect
93
- raise e
94
- end
95
- end
96
-
97
- it '#patch_api_key' do
98
- begin
99
- edit_api_key = @client.patch_api_key(
100
- api_key_id: @api_key1.api_key_id, name: @name1e
101
- )
102
- expect(edit_api_key.api_key_id).to eq(@api_key1.api_key_id)
103
- expect(edit_api_key.name).to eq(@name1e)
104
- rescue RestClient::ExceptionWithResponse => e
105
- puts e.inspect
106
- raise e
107
- end
108
- end
109
-
110
- it '#put_api_key' do
111
- begin
112
- edit_api_key = @client.put_api_key(
113
- api_key_id: @api_key1.api_key_id,
114
- name: @name1e,
115
- scopes: ['mail.send']
116
- )
117
- expect(edit_api_key.api_key_id).to eq(@api_key1.api_key_id)
118
- expect(edit_api_key.name).to eq(@name1e)
119
- expect(edit_api_key.scopes).to eq(['mail.send'])
120
- rescue RestClient::ExceptionWithResponse => e
121
- puts e.inspect
122
- raise e
123
- end
124
- end
125
- end
126
- end
127
-
128
- describe 'unit test', :ut do
129
- let(:client) do
130
- SendGrid4r::Client.new(api_key: '')
131
- end
132
-
133
- let(:api_keys) do
134
- JSON.parse(
135
- '{'\
136
- '"result": ['\
137
- '{'\
138
- '"name": "A New Hope",'\
139
- '"api_key_id": "xxxxxxxx"'\
140
- '}'\
141
- ']'\
142
- '}'
143
- )
144
- end
145
-
146
- let(:api_key) do
147
- JSON.parse(
148
- '{'\
149
- '"api_key": "SG.xxxxxxxx.yyyyyyyy",'\
150
- '"api_key_id": "xxxxxxxx",'\
151
- '"name": "My API Key",'\
152
- '"scopes": ['\
153
- '"mail.send",'\
154
- '"alerts.create",'\
155
- '"alerts.read"'\
156
- ']'\
157
- '}'
158
- )
159
- end
160
-
161
- it '#get_api_keys' do
162
- allow(client).to receive(:execute).and_return(api_keys)
163
- actual = client.get_api_keys
164
- expect(actual).to be_a(SendGrid4r::REST::ApiKeys::ApiKeys)
165
- end
166
-
167
- it '#post_api_key' do
168
- allow(client).to receive(:execute).and_return(api_key)
169
- actual = client.post_api_key(name: '')
170
- expect(actual).to be_a(SendGrid4r::REST::ApiKeys::ApiKey)
171
- end
172
-
173
- it '#delete_api_key' do
174
- allow(client).to receive(:execute).and_return('')
175
- actual = client.delete_api_key(api_key_id: '')
176
- expect(actual).to eq('')
177
- end
178
-
179
- it '#patch_api_key' do
180
- allow(client).to receive(:execute).and_return(api_key)
181
- actual = client.patch_api_key(api_key_id: '', name: '')
182
- expect(actual).to be_a(SendGrid4r::REST::ApiKeys::ApiKey)
183
- end
184
-
185
- it '#put_api_key' do
186
- allow(client).to receive(:execute).and_return(api_key)
187
- actual = client.put_api_key(api_key_id: '', name: '', scopes: [])
188
- expect(actual).to be_a(SendGrid4r::REST::ApiKeys::ApiKey)
189
- end
190
-
191
- it 'creates api_key instance' do
192
- actual = SendGrid4r::REST::ApiKeys.create_api_key(api_key)
193
- expect(actual).to be_a(SendGrid4r::REST::ApiKeys::ApiKey)
194
- expect(actual.api_key).to eq('SG.xxxxxxxx.yyyyyyyy')
195
- expect(actual.api_key_id).to eq('xxxxxxxx')
196
- expect(actual.name).to eq('My API Key')
197
- expect(actual.scopes).to eq(['mail.send', 'alerts.create', 'alerts.read'])
198
- end
199
-
200
- it 'creates api_keys instance' do
201
- actual = SendGrid4r::REST::ApiKeys.create_api_keys(api_keys)
202
- expect(actual).to be_a(SendGrid4r::REST::ApiKeys::ApiKeys)
203
- expect(actual.result).to be_a(Array)
204
- actual.result.each do |api_key|
205
- expect(api_key.name).to eq('A New Hope')
206
- expect(api_key.api_key_id).to eq('xxxxxxxx')
207
- end
208
- end
209
- end
210
- end
@@ -1,65 +0,0 @@
1
- # encoding: utf-8
2
- require File.dirname(__FILE__) + '/../../spec_helper'
3
-
4
- describe SendGrid4r::REST::ApiKeys::Permissions do
5
- describe 'integration test', :it do
6
- before do
7
- Dotenv.load
8
- @client = SendGrid4r::Client.new(api_key: ENV['API_KEY'])
9
- end
10
-
11
- context 'without block call' do
12
- it '#get_permissions' do
13
- begin
14
- permissions = @client.get_permissions
15
- expect(permissions).to be_a(
16
- SendGrid4r::REST::ApiKeys::Permissions::Permissions
17
- )
18
- expect(permissions.scopes).to be_a(Array)
19
- rescue RestClient::ExceptionWithResponse => e
20
- puts e.inspect
21
- raise e
22
- end
23
- end
24
- end
25
- end
26
-
27
- describe 'unit test', :ut do
28
- let(:client) do
29
- SendGrid4r::Client.new(api_key: '')
30
- end
31
-
32
- let(:permissions) do
33
- JSON.parse(
34
- '{'\
35
- '"scopes": ['\
36
- '"alerts.create",'\
37
- '"alerts.read",'\
38
- '"alerts.update"'\
39
- ']'\
40
- '}'
41
- )
42
- end
43
-
44
- it '#get_permissions' do
45
- allow(client).to receive(:execute).and_return(permissions)
46
- actual = client.get_permissions
47
- expect(actual).to be_a(
48
- SendGrid4r::REST::ApiKeys::Permissions::Permissions
49
- )
50
- end
51
-
52
- it 'creates permissions instance' do
53
- actual = SendGrid4r::REST::ApiKeys::Permissions.create_permissions(
54
- permissions
55
- )
56
- expect(actual).to be_a(
57
- SendGrid4r::REST::ApiKeys::Permissions::Permissions
58
- )
59
- expect(actual.scopes).to be_a(Array)
60
- expect(actual.scopes[0]).to eq('alerts.create')
61
- expect(actual.scopes[1]).to eq('alerts.read')
62
- expect(actual.scopes[2]).to eq('alerts.update')
63
- end
64
- end
65
- end