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,307 +0,0 @@
1
- # encoding: utf-8
2
- require File.dirname(__FILE__) + '/../../spec_helper'
3
-
4
- describe SendGrid4r::REST::Contacts::Segments 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 = 'test_segment1'
11
- @name2 = 'test_segment2'
12
- @edit_name1 = 'test_segment_edit'
13
- @field = 'last_name1'
14
- @value = 'Miller'
15
- @operator = 'eq'
16
- @and_or = ''
17
- @condition_factory = SendGrid4r::Factory::ConditionFactory.new
18
- @segment_factory = SendGrid4r::Factory::SegmentFactory.new
19
-
20
- # celan up test env(segment)
21
- @client.get_segments.segments.each do |segment|
22
- @client.delete_segment(
23
- segment_id: segment.id
24
- ) if segment.name == @name1
25
- @client.delete_segment(
26
- segment_id: segment.id
27
- ) if segment.name == @edit_name1
28
- @client.delete_segment(
29
- segment_id: segment.id
30
- ) if segment.name == @name2
31
- end
32
- # clean up test env(custom_fields)
33
- @client.get_custom_fields.custom_fields.each do |field|
34
- @client.delete_custom_field(
35
- custom_field_id: field.id
36
- ) if field.name == @field
37
- end
38
- # post a custom field and a segment
39
- @client.post_custom_field(name: @field, type: 'text')
40
- @condition = @condition_factory.create(
41
- field: @field, value: @value, operator: @operator, and_or: @and_or
42
- )
43
- params1 = @segment_factory.create(
44
- name: @name1, list_id: nil, conditions: [@condition]
45
- )
46
- @segment1 = @client.post_segment(params: params1)
47
- rescue RestClient::ExceptionWithResponse => e
48
- puts e.inspect
49
- raise e
50
- end
51
- end
52
-
53
- context 'without block call' do
54
- it '#post_segment' do
55
- begin
56
- lists = @client.get_lists
57
- params2 = @segment_factory.create(
58
- name: @name2, list_id: lists.lists[0].id, conditions: [@condition]
59
- )
60
- segment = @client.post_segment(params: params2)
61
- expect(segment.id).to be_a(Fixnum)
62
- expect(segment.name).to eq(@name2)
63
- expect(segment.list_id).to eq(lists.lists[0].id)
64
- expect(segment.conditions.length).to eq(1)
65
- expect(segment.recipient_count).to eq(0)
66
- condition = segment.conditions[0]
67
- expect(condition.field).to eq(@field)
68
- expect(condition.value).to eq(@value)
69
- expect(condition.operator).to eq(@operator)
70
- expect(condition.and_or).to eq(nil)
71
- expect(segment.recipient_count).to eq(0)
72
- rescue RestClient::ExceptionWithResponse => e
73
- puts e.inspect
74
- raise e
75
- end
76
- end
77
-
78
- it '#get_segments' do
79
- begin
80
- segments = @client.get_segments
81
- segments.segments.each do |segment|
82
- expect(
83
- segment
84
- ).to be_a(SendGrid4r::REST::Contacts::Segments::Segment)
85
- end
86
- rescue RestClient::ExceptionWithResponse => e
87
- puts e.inspect
88
- raise e
89
- end
90
- end
91
-
92
- it '#get_segment' do
93
- begin
94
- segment = @client.get_segment(segment_id: @segment1.id)
95
- expect(segment.id).to eq(@segment1.id)
96
- expect(segment.name).to eq(@segment1.name)
97
- expect(segment.list_id).to eq(nil)
98
- condition = segment.conditions[0]
99
- expect(condition.field).to eq(@field)
100
- expect(condition.value).to eq(@value)
101
- expect(condition.operator).to eq(@operator)
102
- expect(condition.and_or).to eq(nil)
103
- expect(segment.recipient_count).to be_a(Fixnum)
104
- rescue RestClient::ExceptionWithResponse => e
105
- puts e.inspect
106
- raise e
107
- end
108
- end
109
-
110
- it '#patch_segment' do
111
- begin
112
- edit_params = @segment_factory.create(
113
- name: @edit_name1, conditions: [@condition]
114
- )
115
- edit_segment = @client.patch_segment(
116
- segment_id: @segment1.id, params: edit_params
117
- )
118
- expect(edit_segment.name).to eq(@edit_name1)
119
- rescue RestClient::ExceptionWithResponse => e
120
- puts e.inspect
121
- raise e
122
- end
123
- end
124
-
125
- it '#delete_segment' do
126
- begin
127
- @client.delete_segment(segment_id: @segment1.id)
128
- rescue RestClient::ExceptionWithResponse => e
129
- puts e.inspect
130
- raise e
131
- end
132
- end
133
-
134
- it '#get_recipients_on_segment' do
135
- begin
136
- recipients = @client.get_recipients_on_segment(
137
- segment_id: @segment1.id
138
- )
139
- recipients.recipients.each do |recipient|
140
- expect(
141
- recipient
142
- ).to be_a(SendGrid4r::REST::Contacts::Recipients::Recipient)
143
- end
144
- rescue RestClient::ExceptionWithResponse => e
145
- puts e.inspect
146
- raise e
147
- end
148
- end
149
- end
150
- end
151
-
152
- describe 'unit test', :ut do
153
- let(:client) do
154
- SendGrid4r::Client.new(api_key: '')
155
- end
156
-
157
- let(:condition) do
158
- JSON.parse(
159
- '{'\
160
- '"field": "last_name",'\
161
- '"value": "Miller",'\
162
- '"operator": "eq",'\
163
- '"and_or": ""'\
164
- '}'
165
- )
166
- end
167
-
168
- let(:segment) do
169
- JSON.parse(
170
- '{'\
171
- '"id": 1,'\
172
- '"name": "Last Name Miller",'\
173
- '"list_id": 4,'\
174
- '"conditions": ['\
175
- '{'\
176
- '"field": "last_name",'\
177
- '"value": "Miller",'\
178
- '"operator": "eq",'\
179
- '"and_or": ""'\
180
- '}'\
181
- '],'\
182
- '"recipient_count": 1'\
183
- '}'
184
- )
185
- end
186
-
187
- let(:segments) do
188
- JSON.parse(
189
- '{'\
190
- '"segments": ['\
191
- '{'\
192
- '"id": 1,'\
193
- '"name": "Last Name Miller",'\
194
- '"list_id": 4,'\
195
- '"conditions": ['\
196
- '{'\
197
- '"field": "last_name",'\
198
- '"value": "Miller",'\
199
- '"operator": "eq",'\
200
- '"and_or": ""'\
201
- '}'\
202
- '],'\
203
- '"recipient_count": 1'\
204
- '}'\
205
- ']'\
206
- '}'
207
- )
208
- end
209
-
210
- let(:recipients) do
211
- JSON.parse(
212
- '{'\
213
- '"recipients": ['\
214
- '{'\
215
- '"created_at": 1422313607,'\
216
- '"email": "jones@example.com",'\
217
- '"first_name": null,'\
218
- '"id": "jones@example.com",'\
219
- '"last_clicked": null,'\
220
- '"last_emailed": null,'\
221
- '"last_name": "Jones",'\
222
- '"last_opened": null,'\
223
- '"updated_at": 1422313790,'\
224
- '"custom_fields": ['\
225
- '{'\
226
- '"id": 23,'\
227
- '"name": "pet",'\
228
- '"value": "Fluffy",'\
229
- '"type": "text"'\
230
- '}'\
231
- ']'\
232
- '}'\
233
- ']'\
234
- '}'
235
- )
236
- end
237
-
238
- it '#post_segment' do
239
- allow(client).to receive(:execute).and_return(segment)
240
- actual = client.post_segment(params: nil)
241
- expect(actual).to be_a(SendGrid4r::REST::Contacts::Segments::Segment)
242
- end
243
-
244
- it '#get_segments' do
245
- allow(client).to receive(:execute).and_return(segments)
246
- actual = client.get_segments
247
- expect(actual).to be_a(SendGrid4r::REST::Contacts::Segments::Segments)
248
- end
249
-
250
- it '#get_segment' do
251
- allow(client).to receive(:execute).and_return(segment)
252
- actual = client.get_segment(segment_id: 0)
253
- expect(actual).to be_a(SendGrid4r::REST::Contacts::Segments::Segment)
254
- end
255
-
256
- it '#patch_segment' do
257
- allow(client).to receive(:execute).and_return(segment)
258
- actual = client.patch_segment(segment_id: 0, params: nil)
259
- expect(actual).to be_a(SendGrid4r::REST::Contacts::Segments::Segment)
260
- end
261
-
262
- it '#get_recipients_on_segment' do
263
- allow(client).to receive(:execute).and_return(recipients)
264
- actual = client.get_recipients_on_segment(segment_id: 0)
265
- expect(actual).to be_a(SendGrid4r::REST::Contacts::Recipients::Recipients)
266
- end
267
-
268
- it '#delete_segment' do
269
- allow(client).to receive(:execute).and_return('')
270
- actual = client.delete_segment(segment_id: 0)
271
- expect(actual).to eq('')
272
- end
273
-
274
- it 'creates condition instance' do
275
- actual = SendGrid4r::REST::Contacts::Segments.create_condition(condition)
276
- expect(actual).to be_a(SendGrid4r::REST::Contacts::Segments::Condition)
277
- expect(actual.field).to eq('last_name')
278
- expect(actual.value).to eq('Miller')
279
- expect(actual.operator).to eq('eq')
280
- expect(actual.and_or).to eq('')
281
- end
282
-
283
- it 'creates segment instance' do
284
- actual = SendGrid4r::REST::Contacts::Segments.create_segment(segment)
285
- expect(actual).to be_a(SendGrid4r::REST::Contacts::Segments::Segment)
286
- expect(actual.id).to eq(1)
287
- expect(actual.name).to eq('Last Name Miller')
288
- expect(actual.list_id).to eq(4)
289
- expect(actual.conditions).to be_a(Array)
290
- actual.conditions.each do |condition|
291
- expect(condition).to be_a(
292
- SendGrid4r::REST::Contacts::Segments::Condition
293
- )
294
- end
295
- expect(actual.recipient_count).to be_a(Fixnum)
296
- end
297
-
298
- it 'creates segments instance' do
299
- actual = SendGrid4r::REST::Contacts::Segments.create_segments(segments)
300
- expect(actual).to be_a(SendGrid4r::REST::Contacts::Segments::Segments)
301
- expect(actual.segments).to be_a(Array)
302
- actual.segments.each do |segment|
303
- expect(segment).to be_a(SendGrid4r::REST::Contacts::Segments::Segment)
304
- end
305
- end
306
- end
307
- end
@@ -1,179 +0,0 @@
1
- # encoding: utf-8
2
- require File.dirname(__FILE__) + '/../../spec_helper'
3
-
4
- describe SendGrid4r::REST::EmailActivity 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
- rescue RestClient::ExceptionWithResponse => e
11
- puts e.inspect
12
- raise e
13
- end
14
- end
15
-
16
- context 'without block call' do
17
- it '#get_email_activities' do
18
- begin
19
- activities = @client.get_email_activities
20
- activities.each do |activity|
21
- expect(activity).to be_a(SendGrid4r::REST::EmailActivity::Activity)
22
- end
23
- rescue RestClient::ExceptionWithResponse => e
24
- puts e.inspect
25
- raise e
26
- end
27
- end
28
-
29
- it '#get_email_activities with email' do
30
- begin
31
- activities = @client.get_email_activities(email: 'test@test.com')
32
- activities.each do |activity|
33
- expect(activity).to be_a(SendGrid4r::REST::EmailActivity::Activity)
34
- end
35
- rescue RestClient::ExceptionWithResponse => e
36
- puts e.inspect
37
- raise e
38
- end
39
- end
40
-
41
- it '#get_email_activities with events' do
42
- begin
43
- activities = @client.get_email_activities(
44
- events: [SendGrid4r::Client::Event::DROPS]
45
- )
46
- expect(activities.length).to be >= 0
47
- activities.each do |activity|
48
- expect(activity).to be_a(SendGrid4r::REST::EmailActivity::Activity)
49
- expect(activity.event).to eq('drop')
50
- end
51
- rescue RestClient::ExceptionWithResponse => e
52
- puts e.inspect
53
- raise e
54
- end
55
- end
56
-
57
- it '#get_email_activities with multiple events' do
58
- begin
59
- events = []
60
- events.push(SendGrid4r::Client::Event::DROPS)
61
- events.push(SendGrid4r::Client::Event::DELIVERED)
62
- events.push(SendGrid4r::Client::Event::BOUNCES)
63
- events.push(SendGrid4r::Client::Event::CLICKS)
64
- events.push(SendGrid4r::Client::Event::DEFERRED)
65
- events.push(SendGrid4r::Client::Event::DELIVERED)
66
- events.push(SendGrid4r::Client::Event::DROPS)
67
- events.push(SendGrid4r::Client::Event::GROUP_UNSUBSCRIBE)
68
- events.push(SendGrid4r::Client::Event::GROUP_RESUBSCRIBE)
69
- events.push(SendGrid4r::Client::Event::OPENS)
70
- events.push(SendGrid4r::Client::Event::PROCESSED)
71
- events.push(SendGrid4r::Client::Event::PARSEAPI)
72
- events.push(SendGrid4r::Client::Event::SPAM_REPORTS)
73
- events.push(SendGrid4r::Client::Event::UNSUBSCRIBE)
74
- activities = @client.get_email_activities(events: events)
75
- expect(activities.length).to be >= 0
76
- activities.each do |activity|
77
- expect(activity).to be_a(SendGrid4r::REST::EmailActivity::Activity)
78
- end
79
- rescue RestClient::ExceptionWithResponse => e
80
- puts e.inspect
81
- raise e
82
- end
83
- end
84
-
85
- it '#get_email_activities with start_time and end_time' do
86
- begin
87
- pending('unknown field')
88
- start_time = Time.local(2015, 5, 20, 12, 23, 45)
89
- end_time = Time.local(2015, 5, 23, 12, 23, 45)
90
- activities = @client.get_email_activities(
91
- start_time: start_time, end_time: end_time
92
- )
93
- expect(activities.length).to be >= 0
94
- activities.each do |activity|
95
- expect(activity).to be_a(SendGrid4r::REST::EmailActivity::Activity)
96
- puts activity.inspect
97
- end
98
- rescue RestClient::ExceptionWithResponse => e
99
- puts e.inspect
100
- raise e
101
- end
102
- end
103
- end
104
- end
105
-
106
- describe 'unit test', :ut do
107
- let(:client) do
108
- SendGrid4r::Client.new(api_key: '')
109
- end
110
-
111
- let(:activities) do
112
- JSON.parse(
113
- '['\
114
- '{'\
115
- '"email": "test@example.com",'\
116
- '"event": "processed",'\
117
- '"created": 1431624000,'\
118
- '"category": ["my_category"],'\
119
- '"smtp_id": "filter001-2348927389",'\
120
- '"asm_group_id": null,'\
121
- '"msg_id": "xxx-abc-123",'\
122
- '"ip": null,'\
123
- '"url": null'\
124
- '}'\
125
- ']'
126
- )
127
- end
128
-
129
- let(:activity) do
130
- JSON.parse(
131
- '{'\
132
- '"email": "test@example.com",'\
133
- '"event": "processed",'\
134
- '"created": 1431624000,'\
135
- '"category": ["my_category"],'\
136
- '"smtp_id": "filter001-2348927389",'\
137
- '"asm_group_id": null,'\
138
- '"msg_id": "xxx-abc-123",'\
139
- '"ip": null,'\
140
- '"url": null'\
141
- '}'\
142
- )
143
- end
144
-
145
- it '#get_email_activities' do
146
- allow(client).to receive(:execute).and_return(activities)
147
- actual = client.get_email_activities
148
- expect(actual).to be_a(Array)
149
- actual.each do |activity|
150
- expect(activity).to be_a(SendGrid4r::REST::EmailActivity::Activity)
151
- end
152
- end
153
-
154
- it 'creates activity instance' do
155
- actual = SendGrid4r::REST::EmailActivity.create_activity(activity)
156
- expect(actual).to be_a(SendGrid4r::REST::EmailActivity::Activity)
157
- expect(actual.email).to eq('test@example.com')
158
- expect(actual.event).to eq('processed')
159
- expect(actual.created).to eq(Time.at(1431624000))
160
- expect(actual.category).to be_a(Array)
161
- actual.category.each do |category|
162
- expect(category).to eq('my_category')
163
- end
164
- expect(actual.smtp_id).to eq('filter001-2348927389')
165
- expect(actual.asm_group_id).to eq(nil)
166
- expect(actual.msg_id).to eq('xxx-abc-123')
167
- expect(actual.ip).to eq(nil)
168
- expect(actual.url).to eq(nil)
169
- end
170
-
171
- it 'creates activities instance' do
172
- actual = SendGrid4r::REST::EmailActivity.create_activities(activities)
173
- expect(actual).to be_a(Array)
174
- actual.each do |activity|
175
- expect(activity).to be_a(SendGrid4r::REST::EmailActivity::Activity)
176
- end
177
- end
178
- end
179
- end
@@ -1,222 +0,0 @@
1
- # encoding: utf-8
2
- require File.dirname(__FILE__) + '/../../spec_helper'
3
-
4
- describe SendGrid4r::REST::Templates do
5
- describe 'integration test', :it do
6
- before do
7
- begin
8
- Dotenv.load
9
- @client = SendGrid4r::Client.new(api_key: ENV['SILVER_API_KEY'])
10
- @template_name1 = 'template_test1'
11
- @template_name2 = 'template_test2'
12
- @template_edit1 = 'template_edit1'
13
- @version_name1 = 'version_test1'
14
- @factory = SendGrid4r::Factory::VersionFactory.new
15
-
16
- # celan up test env
17
- tmps = @client.get_templates
18
- tmps.templates.each do |tmp|
19
- delete_template(tmp) if tmp.name == @template_name1
20
- delete_template(tmp) if tmp.name == @template_name2
21
- delete_template(tmp) if tmp.name == @template_edit1
22
- end
23
- # post a template
24
- @template1 = @client.post_template(name: @template_name1)
25
- rescue RestClient::ExceptionWithResponse => e
26
- puts e.inspect
27
- raise e
28
- end
29
- end
30
-
31
- def delete_template(tmp)
32
- tmp.versions.each do |ver|
33
- @client.delete_version(template_id: tmp.id, version_id: ver.id)
34
- end
35
- @client.delete_template(template_id: tmp.id)
36
- end
37
-
38
- context 'without block call' do
39
- it '#post_template' do
40
- begin
41
- new_template = @client.post_template(name: @template_name2)
42
- expect(new_template.id).to be_a(String)
43
- expect(new_template.name).to eq(@template_name2)
44
- expect(new_template.versions).to be_a(Array)
45
- rescue RestClient::ExceptionWithResponse => e
46
- puts e.inspect
47
- raise e
48
- end
49
- end
50
-
51
- it '#get_templates' do
52
- begin
53
- tmps = @client.get_templates
54
- tmps.templates.each do |tmp|
55
- expect(tmp.id).to be_a(String)
56
- expect(tmp.name).to be_a(String)
57
- expect(tmp.versions).to be_a(Array)
58
- tmp.versions.each do |ver|
59
- expect(ver.id).to be_a(String)
60
- expect(ver.template_id).to be_a(String)
61
- expect(ver.active).to be_a(Fixnum)
62
- expect(ver.name).to be_a(String)
63
- expect(ver.updated_at).to be_a(String)
64
- end
65
- end
66
- rescue RestClient::ExceptionWithResponse => e
67
- puts e.inspect
68
- raise e
69
- end
70
- end
71
-
72
- it '#patch_template' do
73
- begin
74
- version = @factory.create(name: @version_name1)
75
- @client.post_version(template_id: @template1.id, version: version)
76
- tmp = @client.patch_template(
77
- template_id: @template1.id, name: @template_edit1
78
- )
79
- expect(tmp.id).to be_a(String)
80
- expect(tmp.name).to be_a(String)
81
- expect(tmp.versions).to be_a(Array)
82
- tmp.versions.each do |ver|
83
- expect(ver.id).to be_a(String)
84
- expect(ver.template_id).to be_a(String)
85
- expect(ver.active).to be_a(Fixnum)
86
- expect(ver.name).to be_a(String)
87
- expect(ver.updated_at).to be_a(String)
88
- end
89
- rescue RestClient::ExceptionWithResponse => e
90
- puts e.inspect
91
- raise e
92
- end
93
- end
94
-
95
- it '#get_template' do
96
- begin
97
- tmp = @client.get_template(template_id: @template1.id)
98
- expect(tmp.id).to eq(@template1.id)
99
- expect(tmp.versions).to eq(@template1.versions)
100
- rescue RestClient::ExceptionWithResponse => e
101
- puts e.inspect
102
- raise e
103
- end
104
- end
105
-
106
- it '#delete_template' do
107
- begin
108
- @client.delete_template(template_id: @template1.id)
109
- rescue RestClient::ExceptionWithResponse => e
110
- puts e.inspect
111
- raise e
112
- end
113
- end
114
- end
115
- end
116
-
117
- describe 'unit test', :ut do
118
- let(:client) do
119
- SendGrid4r::Client.new(api_key: '')
120
- end
121
-
122
- let(:template) do
123
- JSON.parse(
124
- '{'\
125
- '"id": "733ba07f-ead1-41fc-933a-3976baa23716",'\
126
- '"name": "example_name",'\
127
- '"versions": []'\
128
- '}'
129
- )
130
- end
131
-
132
- let(:templates) do
133
- JSON.parse(
134
- '{'\
135
- '"templates": ['\
136
- '{'\
137
- '"id": "e8ac01d5-a07a-4a71-b14c-4721136fe6aa",'\
138
- '"name": "example template name",'\
139
- '"versions": ['\
140
- '{'\
141
- '"id": "de37d11b-082a-42c0-9884-c0c143015a47",'\
142
- '"user_id": 1234,'\
143
- '"template_id": "d51480ba-ca3f-465c-bc3e-ceb71d73c38d",'\
144
- '"active": 1,'\
145
- '"name": "example version",'\
146
- '"html_content": "<%body%><strong>Click to Reset</strong>",'\
147
- '"plain_content": "Click to Reset<%body%>",'\
148
- '"subject": "<%subject%>",'\
149
- '"updated_at": "2014-05-22 20:05:21"'\
150
- '}'\
151
- ']'\
152
- '}'\
153
- ']'\
154
- '}'
155
- )
156
- end
157
-
158
- it '#post_template' do
159
- allow(client).to receive(:execute).and_return(template)
160
- actual = client.post_template(name: '')
161
- expect(actual).to be_a(SendGrid4r::REST::Templates::Template)
162
- end
163
-
164
- it '#get_templates' do
165
- allow(client).to receive(:execute).and_return(templates)
166
- actual = client.get_templates
167
- expect(actual).to be_a(SendGrid4r::REST::Templates::Templates)
168
- end
169
-
170
- it '#patch_template' do
171
- allow(client).to receive(:execute).and_return(template)
172
- actual = client.patch_template(template_id: '', name: '')
173
- expect(actual).to be_a(SendGrid4r::REST::Templates::Template)
174
- end
175
-
176
- it '#get_template' do
177
- allow(client).to receive(:execute).and_return(template)
178
- actual = client.get_template(template_id: '')
179
- expect(actual).to be_a(SendGrid4r::REST::Templates::Template)
180
- end
181
-
182
- it '#delete_template' do
183
- allow(client).to receive(:execute).and_return('')
184
- actual = client.delete_template(template_id: '')
185
- expect(actual).to eq('')
186
- end
187
-
188
- it 'creates template instance' do
189
- actual = SendGrid4r::REST::Templates.create_template(template)
190
- expect(actual).to be_a(SendGrid4r::REST::Templates::Template)
191
- expect(actual.id).to eq('733ba07f-ead1-41fc-933a-3976baa23716')
192
- expect(actual.name).to eq('example_name')
193
- expect(actual.versions).to be_a(Array)
194
- end
195
-
196
- it 'creates templates instance' do
197
- actual = SendGrid4r::REST::Templates.create_templates(templates)
198
- expect(actual).to be_a(SendGrid4r::REST::Templates::Templates)
199
- expect(actual.templates).to be_a(Array)
200
- actual.templates.each do |template|
201
- expect(template.id).to eq('e8ac01d5-a07a-4a71-b14c-4721136fe6aa')
202
- expect(template.name).to eq('example template name')
203
- expect(template.versions).to be_a(Array)
204
- template.versions do |version|
205
- expect(version.id).to eq('de37d11b-082a-42c0-9884-c0c143015a47')
206
- expect(version.user_id).to eq(1234)
207
- expect(version.template_id).to eq(
208
- 'd51480ba-ca3f-465c-bc3e-ceb71d73c38d'
209
- )
210
- expect(version.active).to eq(1)
211
- expect(version.name).to eq('example version')
212
- expect(version.html_content).to eq(
213
- '<%body%><strong>Click to Reset</strong>'
214
- )
215
- expect(version.plain_content).to eq('Click to Reset<%body%>')
216
- expect(version.subject).to eq('<%subject%>')
217
- expect(version.updated_at).to eq('2014-05-22 20:05:21')
218
- end
219
- end
220
- end
221
- end
222
- end