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,24 +1,19 @@
1
1
  # encoding: utf-8
2
2
  require File.dirname(__FILE__) + '/../spec_helper'
3
3
 
4
- describe SendGrid4r::REST::InvalidEmails do
5
- describe 'integration test', :it do
6
- before do
7
- begin
4
+ module SendGrid4r::REST
5
+ describe InvalidEmails do
6
+ describe 'integration test', :it do
7
+ before do
8
8
  Dotenv.load
9
9
  @client = SendGrid4r::Client.new(api_key: ENV['SILVER_API_KEY'])
10
10
  @emails = [
11
11
  'a1@invalid_email.com', 'a2@invalid_email.com', 'a3@invalid_email.com'
12
12
  ]
13
- rescue RestClient::ExceptionWithResponse => e
14
- puts e.inspect
15
- raise e
16
13
  end
17
- end
18
14
 
19
- context 'without block call' do
20
- it '#get_invalid_emails' do
21
- begin
15
+ context 'without block call' do
16
+ it '#get_invalid_emails' do
22
17
  start_time = Time.now - 60 * 60 * 24 * 365
23
18
  end_time = Time.now
24
19
  invalid_emails = @client.get_invalid_emails(
@@ -26,148 +21,119 @@ describe SendGrid4r::REST::InvalidEmails do
26
21
  )
27
22
  expect(invalid_emails).to be_a(Array)
28
23
  invalid_emails.each do |invalid_email|
29
- expect(invalid_email).to be_a(
30
- SendGrid4r::REST::InvalidEmails::InvalidEmail
31
- )
24
+ expect(invalid_email).to be_a(InvalidEmails::InvalidEmail)
32
25
  end
33
- rescue RestClient::ExceptionWithResponse => e
34
- puts e.inspect
35
- raise e
36
26
  end
37
- end
38
27
 
39
- it '#delete_invalid_emails(delete_all: true)' do
40
- begin
28
+ it '#delete_invalid_emails(delete_all: true)' do
41
29
  @client.delete_invalid_emails(delete_all: true)
42
- rescue RestClient::ExceptionWithResponse => e
43
- puts e.inspect
44
- raise e
45
30
  end
46
- end
47
31
 
48
- it '#delete_invalid_emails(emails: [])' do
49
- begin
32
+ it '#delete_invalid_emails(emails: [])' do
50
33
  @client.delete_invalid_emails(emails: @emails)
51
- rescue RestClient::ExceptionWithResponse => e
52
- puts e.inspect
53
- raise e
54
34
  end
55
- end
56
35
 
57
- it '#get_invalid_email' do
58
- begin
36
+ it '#get_invalid_email' do
59
37
  invalid_email = @client.get_invalid_email(email: @email)
60
38
  expect(invalid_email).to be_a(Array)
61
- rescue RestClient::ExceptionWithResponse => e
62
- puts e.inspect
63
- raise e
64
39
  end
65
- end
66
40
 
67
- it '#delete_invalid_email' do
68
- begin
41
+ it '#delete_invalid_email' do
69
42
  expect do
70
43
  @client.delete_invalid_email(email: 'a1@invalid_email.com')
71
44
  end.to raise_error(RestClient::ResourceNotFound)
72
- rescue RestClient::ExceptionWithResponse => e
73
- puts e.inspect
74
- raise e
75
45
  end
76
46
  end
77
47
  end
78
- end
79
48
 
80
- describe 'unit test', :ut do
81
- let(:client) do
82
- SendGrid4r::Client.new(api_key: '')
83
- end
49
+ describe 'unit test', :ut do
50
+ let(:client) do
51
+ SendGrid4r::Client.new(api_key: '')
52
+ end
84
53
 
85
- let(:invalid_emails) do
86
- JSON.parse(
87
- '['\
88
- '{'\
89
- '"created": 1449953655,'\
90
- '"email": "user1@example.com",'\
91
- '"reason": "Mail domain mentioned in email address is unknown"'\
92
- '},'\
54
+ let(:invalid_emails) do
55
+ JSON.parse(
56
+ '['\
57
+ '{'\
58
+ '"created": 1449953655,'\
59
+ '"email": "user1@example.com",'\
60
+ '"reason": "Mail domain mentioned in email address is unknown"'\
61
+ '},'\
62
+ '{'\
63
+ '"created": 1449939373,'\
64
+ '"email": "user1@example.com",'\
65
+ '"reason": "Mail domain mentioned in email address is unknown"'\
66
+ '}'\
67
+ ']'
68
+ )
69
+ end
70
+
71
+ let(:invalid_email) do
72
+ JSON.parse(
93
73
  '{'\
94
- '"created": 1449939373,'\
95
- '"email": "user1@example.com",'\
74
+ '"created": 1454433146,'\
75
+ '"email": "test1@example.com",'\
96
76
  '"reason": "Mail domain mentioned in email address is unknown"'\
97
77
  '}'\
98
- ']'
99
- )
100
- end
101
-
102
- let(:invalid_email) do
103
- JSON.parse(
104
- '{'\
105
- '"created": 1454433146,'\
106
- '"email": "test1@example.com",'\
107
- '"reason": "Mail domain mentioned in email address is unknown"'\
108
- '}'\
109
- )
110
- end
111
-
112
- it '#get_invalid_emails' do
113
- allow(client).to receive(:execute).and_return(invalid_emails)
114
- actual = client.get_invalid_emails
115
- expect(actual).to be_a(Array)
116
- actual.each do |invalid_email|
117
- expect(invalid_email).to be_a(
118
- SendGrid4r::REST::InvalidEmails::InvalidEmail
119
78
  )
120
79
  end
121
- end
122
80
 
123
- it '#delete_invalid_emails(delete_all: true)' do
124
- allow(client).to receive(:execute).and_return('')
125
- client.delete_invalid_emails(delete_all: true)
126
- end
81
+ it '#get_invalid_emails' do
82
+ allow(client).to receive(:execute).and_return(invalid_emails)
83
+ actual = client.get_invalid_emails
84
+ expect(actual).to be_a(Array)
85
+ actual.each do |invalid_email|
86
+ expect(invalid_email).to be_a(InvalidEmails::InvalidEmail)
87
+ end
88
+ end
127
89
 
128
- it '#delete_invalid_emails(emails: [])' do
129
- allow(client).to receive(:execute).and_return('')
130
- actual = client.delete_invalid_emails(emails: [])
131
- expect(actual).to eq('')
132
- end
90
+ it '#delete_invalid_emails(delete_all: true)' do
91
+ allow(client).to receive(:execute).and_return('')
92
+ client.delete_invalid_emails(delete_all: true)
93
+ end
133
94
 
134
- it '#get_invalid_email' do
135
- allow(client).to receive(:execute).and_return(invalid_emails)
136
- actual = client.get_invalid_email(email: '')
137
- expect(actual).to be_a(Array)
138
- actual.each do |invalid_email|
139
- expect(invalid_email).to be_a(
140
- SendGrid4r::REST::InvalidEmails::InvalidEmail
141
- )
95
+ it '#delete_invalid_emails(emails: [])' do
96
+ allow(client).to receive(:execute).and_return('')
97
+ actual = client.delete_invalid_emails(emails: [])
98
+ expect(actual).to eq('')
142
99
  end
143
- end
144
100
 
145
- it '#delete_invalid_email' do
146
- allow(client).to receive(:execute).and_return('')
147
- actual = client.delete_invalid_email(email: '')
148
- expect(actual).to eq('')
149
- end
101
+ it '#get_invalid_email' do
102
+ allow(client).to receive(:execute).and_return(invalid_emails)
103
+ actual = client.get_invalid_email(email: '')
104
+ expect(actual).to be_a(Array)
105
+ actual.each do |invalid_email|
106
+ expect(invalid_email).to be_a(InvalidEmails::InvalidEmail)
107
+ end
108
+ end
150
109
 
151
- it 'creates invalid_emails instance' do
152
- actual = SendGrid4r::REST::InvalidEmails.create_invalid_emails(
153
- invalid_emails
154
- )
155
- expect(actual).to be_a(Array)
156
- actual.each do |subuser|
157
- expect(subuser).to be_a(SendGrid4r::REST::InvalidEmails::InvalidEmail)
110
+ it '#delete_invalid_email' do
111
+ allow(client).to receive(:execute).and_return('')
112
+ actual = client.delete_invalid_email(email: '')
113
+ expect(actual).to eq('')
158
114
  end
159
- end
160
115
 
161
- it 'creates invalid_email instance' do
162
- actual = SendGrid4r::REST::InvalidEmails.create_invalid_email(
163
- invalid_email
164
- )
165
- expect(actual).to be_a(SendGrid4r::REST::InvalidEmails::InvalidEmail)
166
- expect(actual.created).to eq(Time.at(1454433146))
167
- expect(actual.email).to eq('test1@example.com')
168
- expect(actual.reason).to eq(
169
- 'Mail domain mentioned in email address is unknown'
170
- )
116
+ it 'creates invalid_emails instance' do
117
+ actual = InvalidEmails.create_invalid_emails(
118
+ invalid_emails
119
+ )
120
+ expect(actual).to be_a(Array)
121
+ actual.each do |subuser|
122
+ expect(subuser).to be_a(InvalidEmails::InvalidEmail)
123
+ end
124
+ end
125
+
126
+ it 'creates invalid_email instance' do
127
+ actual = InvalidEmails.create_invalid_email(
128
+ invalid_email
129
+ )
130
+ expect(actual).to be_a(InvalidEmails::InvalidEmail)
131
+ expect(actual.created).to eq(Time.at(1454433146))
132
+ expect(actual.email).to eq('test1@example.com')
133
+ expect(actual.reason).to eq(
134
+ 'Mail domain mentioned in email address is unknown'
135
+ )
136
+ end
171
137
  end
172
138
  end
173
139
  end