sendgrid4r 1.11.0 → 1.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +6 -1
  3. data/exe/sg +5 -0
  4. data/lib/sendgrid4r/cli/api_keys/api_key.rb +53 -0
  5. data/lib/sendgrid4r/cli/api_keys/permission.rb +15 -0
  6. data/lib/sendgrid4r/cli/campaign/campaign.rb +134 -0
  7. data/lib/sendgrid4r/cli/campaign/contact/contact.rb +25 -0
  8. data/lib/sendgrid4r/cli/campaign/contact/custom_field.rb +42 -0
  9. data/lib/sendgrid4r/cli/campaign/contact/list.rb +71 -0
  10. data/lib/sendgrid4r/cli/campaign/contact/recipient.rb +78 -0
  11. data/lib/sendgrid4r/cli/campaign/contact/reserved_field.rb +17 -0
  12. data/lib/sendgrid4r/cli/campaign/contact/segment.rb +96 -0
  13. data/lib/sendgrid4r/cli/campaign/sender.rb +83 -0
  14. data/lib/sendgrid4r/cli/cancel_schedules/batch_id.rb +23 -0
  15. data/lib/sendgrid4r/cli/cancel_schedules/cancel_schedule.rb +55 -0
  16. data/lib/sendgrid4r/cli/category.rb +16 -0
  17. data/lib/sendgrid4r/cli/ipam/activity.rb +16 -0
  18. data/lib/sendgrid4r/cli/ipam/ipam.rb +14 -0
  19. data/lib/sendgrid4r/cli/ipam/whitelist.rb +39 -0
  20. data/lib/sendgrid4r/cli/ips/address.rb +48 -0
  21. data/lib/sendgrid4r/cli/ips/ip.rb +17 -0
  22. data/lib/sendgrid4r/cli/ips/pool.rb +48 -0
  23. data/lib/sendgrid4r/cli/ips/warmup.rb +39 -0
  24. data/lib/sendgrid4r/cli/mail.rb +34 -0
  25. data/lib/sendgrid4r/cli/settings/enforced_tls.rb +24 -0
  26. data/lib/sendgrid4r/cli/settings/mail.rb +171 -0
  27. data/lib/sendgrid4r/cli/settings/partner.rb +34 -0
  28. data/lib/sendgrid4r/cli/settings/settings.rb +20 -0
  29. data/lib/sendgrid4r/cli/settings/tracking.rb +92 -0
  30. data/lib/sendgrid4r/cli/sg.rb +55 -0
  31. data/lib/sendgrid4r/cli/sg_thor.rb +34 -0
  32. data/lib/sendgrid4r/cli/stats/advanced.rb +72 -0
  33. data/lib/sendgrid4r/cli/stats/category.rb +35 -0
  34. data/lib/sendgrid4r/cli/stats/global.rb +18 -0
  35. data/lib/sendgrid4r/cli/stats/parse.rb +18 -0
  36. data/lib/sendgrid4r/cli/stats/stats.rb +23 -0
  37. data/lib/sendgrid4r/cli/stats/subuser.rb +67 -0
  38. data/lib/sendgrid4r/cli/subusers/monitor.rb +44 -0
  39. data/lib/sendgrid4r/cli/subusers/subuser.rb +77 -0
  40. data/lib/sendgrid4r/cli/suppressions/block.rb +43 -0
  41. data/lib/sendgrid4r/cli/suppressions/bounce.rb +41 -0
  42. data/lib/sendgrid4r/cli/suppressions/global_unsubscribe.rb +43 -0
  43. data/lib/sendgrid4r/cli/suppressions/group.rb +56 -0
  44. data/lib/sendgrid4r/cli/suppressions/group_unsubscribe.rb +34 -0
  45. data/lib/sendgrid4r/cli/suppressions/invalid_email.rb +43 -0
  46. data/lib/sendgrid4r/cli/suppressions/spam_report.rb +43 -0
  47. data/lib/sendgrid4r/cli/suppressions/suppression.rb +36 -0
  48. data/lib/sendgrid4r/cli/templates/template.rb +51 -0
  49. data/lib/sendgrid4r/cli/templates/version.rb +78 -0
  50. data/lib/sendgrid4r/cli/user.rb +86 -0
  51. data/lib/sendgrid4r/cli/webhooks/event.rb +53 -0
  52. data/lib/sendgrid4r/cli/webhooks/parse.rb +15 -0
  53. data/lib/sendgrid4r/cli/webhooks/webhook.rb +14 -0
  54. data/lib/sendgrid4r/cli/whitelabel/domain.rb +117 -0
  55. data/lib/sendgrid4r/cli/whitelabel/ip.rb +52 -0
  56. data/lib/sendgrid4r/cli/whitelabel/link.rb +96 -0
  57. data/lib/sendgrid4r/cli/whitelabel/whitelabel.rb +17 -0
  58. data/lib/sendgrid4r/client.rb +4 -1
  59. data/lib/sendgrid4r/factory/campaign_factory.rb +1 -1
  60. data/lib/sendgrid4r/factory/condition_factory.rb +2 -2
  61. data/lib/sendgrid4r/factory/event_factory.rb +21 -0
  62. data/lib/sendgrid4r/rest/api_keys_management/api_keys.rb +5 -5
  63. data/lib/sendgrid4r/rest/api_keys_management/permissions.rb +3 -1
  64. data/lib/sendgrid4r/rest/blocks.rb +2 -2
  65. data/lib/sendgrid4r/rest/bounces.rb +2 -2
  66. data/lib/sendgrid4r/rest/cancel_scheduled_sends.rb +12 -4
  67. data/lib/sendgrid4r/rest/categories.rb +1 -1
  68. data/lib/sendgrid4r/rest/email_activity.rb +1 -1
  69. data/lib/sendgrid4r/rest/invalid_emails.rb +2 -2
  70. data/lib/sendgrid4r/rest/ip_access_management.rb +12 -4
  71. data/lib/sendgrid4r/rest/ips/addresses.rb +4 -4
  72. data/lib/sendgrid4r/rest/ips/pools.rb +4 -4
  73. data/lib/sendgrid4r/rest/ips/warmup.rb +3 -3
  74. data/lib/sendgrid4r/rest/marketing_campaigns/contacts/custom_fields.rb +9 -3
  75. data/lib/sendgrid4r/rest/marketing_campaigns/contacts/lists.rb +7 -5
  76. data/lib/sendgrid4r/rest/marketing_campaigns/contacts/recipients.rb +22 -7
  77. data/lib/sendgrid4r/rest/marketing_campaigns/contacts/reserved_fields.rb +3 -1
  78. data/lib/sendgrid4r/rest/marketing_campaigns/contacts/segments.rb +7 -5
  79. data/lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb +8 -8
  80. data/lib/sendgrid4r/rest/marketing_campaigns/senders.rb +4 -4
  81. data/lib/sendgrid4r/rest/request.rb +6 -4
  82. data/lib/sendgrid4r/rest/settings/enforced_tls.rb +6 -2
  83. data/lib/sendgrid4r/rest/settings/mail.rb +71 -17
  84. data/lib/sendgrid4r/rest/settings/partner.rb +3 -3
  85. data/lib/sendgrid4r/rest/settings/tracking.rb +17 -9
  86. data/lib/sendgrid4r/rest/sm/global_unsubscribes.rb +5 -3
  87. data/lib/sendgrid4r/rest/sm/groups.rb +4 -4
  88. data/lib/sendgrid4r/rest/sm/suppressions.rb +6 -3
  89. data/lib/sendgrid4r/rest/spam_reports.rb +2 -2
  90. data/lib/sendgrid4r/rest/stats/advanced.rb +8 -8
  91. data/lib/sendgrid4r/rest/stats/category.rb +2 -2
  92. data/lib/sendgrid4r/rest/stats/global.rb +1 -1
  93. data/lib/sendgrid4r/rest/stats/parse.rb +1 -1
  94. data/lib/sendgrid4r/rest/stats/subuser.rb +4 -4
  95. data/lib/sendgrid4r/rest/subusers.rb +15 -10
  96. data/lib/sendgrid4r/rest/transactional_templates/templates.rb +12 -4
  97. data/lib/sendgrid4r/rest/transactional_templates/versions.rb +4 -4
  98. data/lib/sendgrid4r/rest/users.rb +9 -9
  99. data/lib/sendgrid4r/rest/webhooks/event.rb +2 -2
  100. data/lib/sendgrid4r/rest/webhooks/parse.rb +1 -1
  101. data/lib/sendgrid4r/rest/whitelabel/domains.rb +10 -11
  102. data/lib/sendgrid4r/rest/whitelabel/ips.rb +4 -4
  103. data/lib/sendgrid4r/rest/whitelabel/links.rb +8 -8
  104. data/lib/sendgrid4r/version.rb +1 -1
  105. data/lib/sendgrid4r.rb +57 -0
  106. data/sendgrid4r.gemspec +3 -1
  107. data/spec/cli/api_keys/api_key_spec.rb +77 -0
  108. data/spec/cli/api_keys/permission_spec.rb +29 -0
  109. data/spec/cli/campaign/campaign_spec.rb +136 -0
  110. data/spec/cli/campaign/contact/custom_field_spec.rb +48 -0
  111. data/spec/cli/campaign/contact/list_spec.rb +88 -0
  112. data/spec/cli/campaign/contact/recipient_spec.rb +93 -0
  113. data/spec/cli/campaign/contact/reserved_field_spec.rb +20 -0
  114. data/spec/cli/campaign/contact/segment_spec.rb +93 -0
  115. data/spec/cli/campaign/sender_spec.rb +83 -0
  116. data/spec/cli/cancel_schedules/batch_id_spec.rb +33 -0
  117. data/spec/cli/cancel_schedules/cancel_schedule_spec.rb +69 -0
  118. data/spec/cli/category_spec.rb +23 -0
  119. data/spec/cli/ipam/activity_spec.rb +21 -0
  120. data/spec/cli/ipam/ipam_spec.rb +26 -0
  121. data/spec/cli/ipam/whitelist_spec.rb +47 -0
  122. data/spec/cli/ips/address_spec.rb +57 -0
  123. data/spec/cli/ips/ip_spec.rb +33 -0
  124. data/spec/cli/ips/pool_spec.rb +57 -0
  125. data/spec/cli/ips/warmup_spec.rb +47 -0
  126. data/spec/cli/mail_spec.rb +37 -0
  127. data/spec/cli/settings/enforced_tls_spec.rb +30 -0
  128. data/spec/cli/settings/mail_spec.rb +255 -0
  129. data/spec/cli/settings/partner_spec.rb +47 -0
  130. data/spec/cli/settings/settings_spec.rb +40 -0
  131. data/spec/cli/settings/tracking_spec.rb +128 -0
  132. data/spec/cli/sg_spec.rb +82 -0
  133. data/spec/cli/stats/advanced_spec.rb +137 -0
  134. data/spec/cli/stats/category_spec.rb +57 -0
  135. data/spec/cli/stats/global_spec.rb +32 -0
  136. data/spec/cli/stats/parse_spec.rb +32 -0
  137. data/spec/cli/stats/stats_spec.rb +40 -0
  138. data/spec/cli/stats/subuser_spec.rb +104 -0
  139. data/spec/cli/subusers/monitor_spec.rb +52 -0
  140. data/spec/cli/subusers/subuser_spec.rb +88 -0
  141. data/spec/cli/suppressions/block_spec.rb +60 -0
  142. data/spec/cli/suppressions/bounce_spec.rb +58 -0
  143. data/spec/cli/suppressions/global_unsubscribe_spec.rb +59 -0
  144. data/spec/cli/suppressions/group_spec.rb +69 -0
  145. data/spec/cli/suppressions/group_unsubscribe_spec.rb +41 -0
  146. data/spec/cli/suppressions/invalid_email_spec.rb +60 -0
  147. data/spec/cli/suppressions/spam_report_spec.rb +60 -0
  148. data/spec/cli/suppressions/suppression_spec.rb +68 -0
  149. data/spec/cli/templates/template_spec.rb +65 -0
  150. data/spec/cli/templates/version_spec.rb +71 -0
  151. data/spec/cli/user_spec.rb +82 -0
  152. data/spec/cli/webhooks/event_spec.rb +67 -0
  153. data/spec/cli/webhooks/parse_spec.rb +20 -0
  154. data/spec/cli/webhooks/webhook_spec.rb +28 -0
  155. data/spec/cli/whitelabel/domain_spec.rb +112 -0
  156. data/spec/cli/whitelabel/ip_spec.rb +61 -0
  157. data/spec/cli/whitelabel/link_spec.rb +110 -0
  158. data/spec/cli/whitelabel/whitelabel_spec.rb +27 -0
  159. data/spec/client_spec.rb +1 -1
  160. data/spec/factory/campaign_factory_spec.rb +2 -2
  161. data/spec/factory/event_factory_spec.rb +36 -0
  162. data/spec/rest/api_keys_management/api_keys_spec.rb +24 -24
  163. data/spec/rest/api_keys_management/permissions_spec.rb +8 -10
  164. data/spec/rest/blocks_spec.rb +14 -18
  165. data/spec/rest/bounces_spec.rb +28 -32
  166. data/spec/rest/cancel_scheduled_sends_spec.rb +15 -19
  167. data/spec/rest/categories_spec.rb +8 -10
  168. data/spec/rest/email_activity_spec.rb +18 -22
  169. data/spec/rest/invalid_emails_spec.rb +19 -23
  170. data/spec/rest/ip_access_management_spec.rb +46 -52
  171. data/spec/rest/ips/addresses_spec.rb +21 -25
  172. data/spec/rest/ips/pools_spec.rb +20 -24
  173. data/spec/rest/ips/warmup_spec.rb +11 -15
  174. data/spec/rest/marketing_campaigns/contacts/custom_fields_spec.rb +26 -30
  175. data/spec/rest/marketing_campaigns/contacts/lists_spec.rb +58 -66
  176. data/spec/rest/marketing_campaigns/contacts/recipients_spec.rb +77 -87
  177. data/spec/rest/marketing_campaigns/contacts/reserved_fields_spec.rb +46 -50
  178. data/spec/rest/marketing_campaigns/contacts/segments_spec.rb +75 -78
  179. data/spec/rest/marketing_campaigns/marketing_campaigns_spec.rb +92 -94
  180. data/spec/rest/marketing_campaigns/senders_spec.rb +51 -51
  181. data/spec/rest/settings/enforced_tls_spec.rb +5 -7
  182. data/spec/rest/settings/mail_spec.rb +89 -60
  183. data/spec/rest/settings/partner_spec.rb +5 -7
  184. data/spec/rest/settings/settings_spec.rb +18 -22
  185. data/spec/rest/settings/tracking_spec.rb +26 -34
  186. data/spec/rest/sm/global_unsubscribes_spec.rb +9 -13
  187. data/spec/rest/sm/groups_spec.rb +24 -28
  188. data/spec/rest/sm/sm_spec.rb +15 -15
  189. data/spec/rest/sm/suppressions_spec.rb +34 -44
  190. data/spec/rest/spam_reports_spec.rb +19 -23
  191. data/spec/rest/stats/advanced_spec.rb +4 -4
  192. data/spec/rest/stats/global_spec.rb +0 -21
  193. data/spec/rest/subusers_spec.rb +38 -47
  194. data/spec/rest/transactional_templates/templates_spec.rb +29 -33
  195. data/spec/rest/transactional_templates/versions_spec.rb +11 -93
  196. data/spec/rest/users_spec.rb +42 -54
  197. data/spec/rest/webhooks/event_spec.rb +16 -18
  198. data/spec/rest/webhooks/parse_spec.rb +16 -20
  199. data/spec/rest/whitelabel/domains_spec.rb +93 -100
  200. data/spec/rest/whitelabel/ips_spec.rb +28 -32
  201. data/spec/rest/whitelabel/links_spec.rb +41 -45
  202. metadata +181 -4
@@ -241,8 +241,7 @@ module SendGrid4r::REST::Whitelabel
241
241
 
242
242
  it '#remove_ip_from_wl_domain' do
243
243
  @client.add_ip_to_wl_domain(id: @domain2.id, ip: @ip)
244
- domain2 = @client.remove_ip_from_wl_domain(id: @domain2.id, ip: @ip)
245
- expect(domain2.ips).to eq(nil)
244
+ @client.remove_ip_from_wl_domain(id: @domain2.id, ip: @ip)
246
245
  end
247
246
 
248
247
  it '#validate_wl_domain' do
@@ -290,111 +289,105 @@ module SendGrid4r::REST::Whitelabel
290
289
  end
291
290
 
292
291
  let(:domains) do
293
- JSON.parse('[]')
292
+ '[]'
294
293
  end
295
294
 
296
295
  let(:domain) do
297
- JSON.parse(
298
- '{'\
299
- '"id": 1,'\
300
- '"domain": "example.com",'\
301
- '"subdomain": "mail",'\
302
- '"username": "john@example.com",'\
303
- '"user_id": 7,'\
304
- '"ips": ['\
305
- '"192.168.1.1",'\
306
- '"192.168.1.2"'\
307
- '],'\
308
- '"custom_spf": true,'\
309
- '"default": true,'\
310
- '"legacy": false,'\
311
- '"automatic_security": true,'\
312
- '"valid": true,'\
313
- '"dns": {'\
314
- '"mail_cname": {'\
315
- '"host": "mail.example.com",'\
316
- '"type": "cname",'\
317
- '"data": "u7.wl.sendgrid.net",'\
318
- '"valid": true'\
319
- '},'\
320
- '"dkim1": {'\
321
- '"host": "s1._domainkey.example.com",'\
322
- '"type": "cname",'\
323
- '"data": "s1._domainkey.u7.wl.sendgrid.net",'\
324
- '"valid": true'\
325
- '},'\
326
- '"dkim2": {'\
327
- '"host": "s2._domainkey.example.com",'\
328
- '"type": "cname",'\
329
- '"data": "s2._domainkey.u7.wl.sendgrid.net",'\
330
- '"valid": true'\
331
- '}'\
296
+ '{'\
297
+ '"id": 1,'\
298
+ '"domain": "example.com",'\
299
+ '"subdomain": "mail",'\
300
+ '"username": "john@example.com",'\
301
+ '"user_id": 7,'\
302
+ '"ips": ['\
303
+ '"192.168.1.1",'\
304
+ '"192.168.1.2"'\
305
+ '],'\
306
+ '"custom_spf": true,'\
307
+ '"default": true,'\
308
+ '"legacy": false,'\
309
+ '"automatic_security": true,'\
310
+ '"valid": true,'\
311
+ '"dns": {'\
312
+ '"mail_cname": {'\
313
+ '"host": "mail.example.com",'\
314
+ '"type": "cname",'\
315
+ '"data": "u7.wl.sendgrid.net",'\
316
+ '"valid": true'\
317
+ '},'\
318
+ '"dkim1": {'\
319
+ '"host": "s1._domainkey.example.com",'\
320
+ '"type": "cname",'\
321
+ '"data": "s1._domainkey.u7.wl.sendgrid.net",'\
322
+ '"valid": true'\
323
+ '},'\
324
+ '"dkim2": {'\
325
+ '"host": "s2._domainkey.example.com",'\
326
+ '"type": "cname",'\
327
+ '"data": "s2._domainkey.u7.wl.sendgrid.net",'\
328
+ '"valid": true'\
332
329
  '}'\
333
- '}'
334
- )
330
+ '}'\
331
+ '}'
335
332
  end
336
333
 
337
334
  let(:domain2) do
338
- JSON.parse(
339
- '{'\
340
- '"id": 2,'\
341
- '"user_id": 2,'\
342
- '"subdomain": "mail2",'\
343
- '"domain": "example.com",'\
344
- '"username": "john@example.com",'\
345
- '"ips": [],'\
346
- '"custom_spf": true,'\
347
- '"default": false,'\
348
- '"legacy": false,'\
349
- '"automatic_security": false,'\
350
- '"valid": false,'\
351
- '"dns": {'\
352
- '"mail_server": {'\
353
- '"valid": false,'\
354
- '"type": "mx",'\
355
- '"host": "mail2.example.com",'\
356
- '"data": "mx.sendgrid.net."'\
357
- '},'\
358
- '"subdomain_spf": {'\
359
- '"valid": false,'\
360
- '"type": "txt",'\
361
- '"host": "mail2.example.com",'\
362
- '"data": "v=spf1 include:sendgrid.net ~all"'\
363
- '},'\
364
- '"dkim": {'\
365
- '"valid": false,'\
366
- '"type": "txt",'\
367
- '"host": "m1._domainkey.example.com",'\
368
- '"data": "k=rsa; t=s; '\
369
- 'p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ"'\
370
- '}'\
335
+ '{'\
336
+ '"id": 2,'\
337
+ '"user_id": 2,'\
338
+ '"subdomain": "mail2",'\
339
+ '"domain": "example.com",'\
340
+ '"username": "john@example.com",'\
341
+ '"ips": [],'\
342
+ '"custom_spf": true,'\
343
+ '"default": false,'\
344
+ '"legacy": false,'\
345
+ '"automatic_security": false,'\
346
+ '"valid": false,'\
347
+ '"dns": {'\
348
+ '"mail_server": {'\
349
+ '"valid": false,'\
350
+ '"type": "mx",'\
351
+ '"host": "mail2.example.com",'\
352
+ '"data": "mx.sendgrid.net."'\
353
+ '},'\
354
+ '"subdomain_spf": {'\
355
+ '"valid": false,'\
356
+ '"type": "txt",'\
357
+ '"host": "mail2.example.com",'\
358
+ '"data": "v=spf1 include:sendgrid.net ~all"'\
359
+ '},'\
360
+ '"dkim": {'\
361
+ '"valid": false,'\
362
+ '"type": "txt",'\
363
+ '"host": "m1._domainkey.example.com",'\
364
+ '"data": "k=rsa; t=s; '\
365
+ 'p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ"'\
371
366
  '}'\
372
- '}'
373
- )
367
+ '}'\
368
+ '}'
374
369
  end
375
370
 
376
371
  let(:result) do
377
- JSON.parse(
378
- '{'\
379
- '"id": 1,'\
380
- '"valid": true,'\
381
- '"validation_results": {'\
382
- '"mail_cname": {'\
383
- '"valid": false,'\
384
- '"reason": "Expected your MX record to be \"mx.sendgrid.net\" '\
385
- 'but found \"example.com\"."'\
386
- '},'\
387
- '"dkim1": {'\
388
- '"valid": true,'\
389
- '"reason": null'\
390
- '},'\
391
- '"dkim2": {'\
392
- '"valid": true,'\
393
- '"reason": null'\
394
- '}'\
372
+ '{'\
373
+ '"id": 1,'\
374
+ '"valid": true,'\
375
+ '"validation_results": {'\
376
+ '"mail_cname": {'\
377
+ '"valid": false,'\
378
+ '"reason": "Expected your MX record to be \"mx.sendgrid.net\" '\
379
+ 'but found \"example.com\"."'\
380
+ '},'\
381
+ '"dkim1": {'\
382
+ '"valid": true,'\
383
+ '"reason": null'\
384
+ '},'\
385
+ '"dkim2": {'\
386
+ '"valid": true,'\
387
+ '"reason": null'\
395
388
  '}'\
396
- '}'
397
- )
389
+ '}'\
390
+ '}'
398
391
  end
399
392
 
400
393
  it '#get_domains' do
@@ -442,9 +435,9 @@ module SendGrid4r::REST::Whitelabel
442
435
  end
443
436
 
444
437
  it '#remove_ip_from_domain' do
445
- allow(client).to receive(:execute).and_return(domain)
438
+ allow(client).to receive(:execute).and_return('')
446
439
  actual = client.remove_ip_from_wl_domain(id: '', ip: '')
447
- expect(actual).to be_a(Domains::Domain)
440
+ expect(actual).to eq('')
448
441
  end
449
442
 
450
443
  it '#validate_domain' do
@@ -472,7 +465,7 @@ module SendGrid4r::REST::Whitelabel
472
465
  end
473
466
 
474
467
  it 'creates domain instance' do
475
- actual = Domains.create_domain(domain)
468
+ actual = Domains.create_domain(JSON.parse(domain))
476
469
  expect(actual).to be_a(Domains::Domain)
477
470
  expect(actual.id).to eq(1)
478
471
  expect(actual.domain).to eq('example.com')
@@ -506,7 +499,7 @@ module SendGrid4r::REST::Whitelabel
506
499
  end
507
500
 
508
501
  it 'creates domain2 instance' do
509
- actual = Domains.create_domain(domain2)
502
+ actual = Domains.create_domain(JSON.parse(domain2))
510
503
  expect(actual).to be_a(Domains::Domain)
511
504
  expect(actual.id).to eq(2)
512
505
  expect(actual.domain).to eq('example.com')
@@ -542,7 +535,7 @@ module SendGrid4r::REST::Whitelabel
542
535
  end
543
536
 
544
537
  it 'creates result instance' do
545
- actual = Domains.create_result(result)
538
+ actual = Domains.create_result(JSON.parse(result))
546
539
  expect(actual).to be_a(Domains::Result)
547
540
  expect(actual.id).to eq(1)
548
541
  expect(actual.valid).to eq(true)
@@ -85,44 +85,40 @@ module SendGrid4r::REST::Whitelabel
85
85
  end
86
86
 
87
87
  let(:ips) do
88
- JSON.parse('[]')
88
+ '[]'
89
89
  end
90
90
 
91
91
  let(:ip) do
92
- JSON.parse(
93
- '{'\
94
- '"id": 123,'\
95
- '"ip": "192.168.1.2",'\
96
- '"rdns": "o1.email.example.com",'\
97
- '"users": ['\
98
- '],'\
99
- '"subdomain": "email",'\
100
- '"domain": "example.com",'\
92
+ '{'\
93
+ '"id": 123,'\
94
+ '"ip": "192.168.1.2",'\
95
+ '"rdns": "o1.email.example.com",'\
96
+ '"users": ['\
97
+ '],'\
98
+ '"subdomain": "email",'\
99
+ '"domain": "example.com",'\
100
+ '"valid": true,'\
101
+ '"legacy": false,'\
102
+ '"a_record": {'\
101
103
  '"valid": true,'\
102
- '"legacy": false,'\
103
- '"a_record": {'\
104
- '"valid": true,'\
105
- '"type": "a",'\
106
- '"host": "o1.email.example.com",'\
107
- '"data": "192.168.1.2"'\
108
- '}'\
109
- '}'
110
- )
104
+ '"type": "a",'\
105
+ '"host": "o1.email.example.com",'\
106
+ '"data": "192.168.1.2"'\
107
+ '}'\
108
+ '}'
111
109
  end
112
110
 
113
111
  let(:result) do
114
- JSON.parse(
115
- '{'\
116
- '"id": 1,'\
117
- '"valid": true,'\
118
- '"validation_results": {'\
119
- '"a_record": {'\
120
- '"valid": true,'\
121
- '"reason": null'\
122
- '}'\
112
+ '{'\
113
+ '"id": 1,'\
114
+ '"valid": true,'\
115
+ '"validation_results": {'\
116
+ '"a_record": {'\
117
+ '"valid": true,'\
118
+ '"reason": null'\
123
119
  '}'\
124
- '}'
125
- )
120
+ '}'\
121
+ '}'
126
122
  end
127
123
 
128
124
  it '#get_wl_ips' do
@@ -156,7 +152,7 @@ module SendGrid4r::REST::Whitelabel
156
152
  end
157
153
 
158
154
  it 'creates ip instance' do
159
- actual = Ips.create_ip(ip)
155
+ actual = Ips.create_ip(JSON.parse(ip))
160
156
  expect(actual).to be_a(Ips::Ip)
161
157
  expect(actual.id).to eq(123)
162
158
  expect(actual.ip).to eq('192.168.1.2')
@@ -174,7 +170,7 @@ module SendGrid4r::REST::Whitelabel
174
170
  end
175
171
 
176
172
  it 'creates result instance' do
177
- actual = Ips.create_result(result)
173
+ actual = Ips.create_result(JSON.parse(result))
178
174
  expect(actual).to be_a(Ips::Result)
179
175
  expect(actual.id).to eq(1)
180
176
  expect(actual.valid).to eq(true)
@@ -147,57 +147,53 @@ module SendGrid4r::REST::Whitelabel
147
147
  end
148
148
 
149
149
  let(:links) do
150
- JSON.parse('[]')
150
+ '[]'
151
151
  end
152
152
 
153
153
  let(:link) do
154
- JSON.parse(
155
- '{'\
156
- '"id": 1,'\
157
- '"domain": "example.com",'\
158
- '"subdomain": "mail",'\
159
- '"username": "john@example.com",'\
160
- '"user_id": 7,'\
161
- '"default": false,'\
162
- '"valid": true,'\
163
- '"legacy": false,'\
164
- '"dns": {'\
165
- '"domain_cname": {'\
166
- '"valid": true,'\
167
- '"type": "cname",'\
168
- '"host": "mail.example.com",'\
169
- '"data": "sendgrid.net"'\
170
- '},'\
171
- '"owner_cname": {'\
172
- '"valid": true,'\
173
- '"type": "cname",'\
174
- '"host": "7.example.com",'\
175
- '"data": "sendgrid.net"'\
176
- '}'\
154
+ '{'\
155
+ '"id": 1,'\
156
+ '"domain": "example.com",'\
157
+ '"subdomain": "mail",'\
158
+ '"username": "john@example.com",'\
159
+ '"user_id": 7,'\
160
+ '"default": false,'\
161
+ '"valid": true,'\
162
+ '"legacy": false,'\
163
+ '"dns": {'\
164
+ '"domain_cname": {'\
165
+ '"valid": true,'\
166
+ '"type": "cname",'\
167
+ '"host": "mail.example.com",'\
168
+ '"data": "sendgrid.net"'\
169
+ '},'\
170
+ '"owner_cname": {'\
171
+ '"valid": true,'\
172
+ '"type": "cname",'\
173
+ '"host": "7.example.com",'\
174
+ '"data": "sendgrid.net"'\
177
175
  '}'\
178
- '}'
179
- )
176
+ '}'\
177
+ '}'
180
178
  end
181
179
 
182
180
  let(:result) do
183
- JSON.parse(
184
- '{'\
185
- '"id": 1,'\
186
- '"valid": true,'\
187
- '"validation_results": {'\
188
- '"domain_cname": {'\
189
- '"valid": false,'\
190
- '"reason": "Expected CNAME to match '\
191
- '\"sendgrid.net.\" but found'\
192
- ' \"example.com.\"."'\
193
- '},'\
194
- '"owner_cname": {'\
195
- '"valid": true,'\
196
- '"reason": null'\
197
- '}'\
181
+ '{'\
182
+ '"id": 1,'\
183
+ '"valid": true,'\
184
+ '"validation_results": {'\
185
+ '"domain_cname": {'\
186
+ '"valid": false,'\
187
+ '"reason": "Expected CNAME to match '\
188
+ '\"sendgrid.net.\" but found'\
189
+ ' \"example.com.\"."'\
190
+ '},'\
191
+ '"owner_cname": {'\
192
+ '"valid": true,'\
193
+ '"reason": null'\
198
194
  '}'\
199
- '}'
200
- )
195
+ '}'\
196
+ '}'
201
197
  end
202
198
 
203
199
  it '#get_wl_links' do
@@ -261,7 +257,7 @@ module SendGrid4r::REST::Whitelabel
261
257
  end
262
258
 
263
259
  it 'creates link instance' do
264
- actual = Links.create_link(link)
260
+ actual = Links.create_link(JSON.parse(link))
265
261
  expect(actual).to be_a(Links::Link)
266
262
  expect(actual.id).to eq(1)
267
263
  expect(actual.domain).to eq('example.com')
@@ -285,7 +281,7 @@ module SendGrid4r::REST::Whitelabel
285
281
  end
286
282
 
287
283
  it 'creates result instance' do
288
- actual = Links.create_result(result)
284
+ actual = Links.create_result(JSON.parse(result))
289
285
  expect(actual).to be_a(Links::Result)
290
286
  expect(actual.id).to eq(1)
291
287
  expect(actual.valid).to eq(true)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sendgrid4r
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.0
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - awwa500@gmail.com
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-15 00:00:00.000000000 Z
11
+ date: 2016-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -30,6 +30,20 @@ dependencies:
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.9.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: thor
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.19.1
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.19.1
33
47
  - !ruby/object:Gem::Dependency
34
48
  name: rubocop
35
49
  requirement: !ruby/object:Gem::Requirement
@@ -107,7 +121,8 @@ dependencies:
107
121
  description: SendGrid Web API v3 module
108
122
  email:
109
123
  - awwa500@gmail.com
110
- executables: []
124
+ executables:
125
+ - sg
111
126
  extensions: []
112
127
  extra_rdoc_files: []
113
128
  files:
@@ -119,11 +134,67 @@ files:
119
134
  - LICENSE.txt
120
135
  - README.md
121
136
  - Rakefile
137
+ - exe/sg
122
138
  - lib/sendgrid4r.rb
123
139
  - lib/sendgrid4r/auth.rb
140
+ - lib/sendgrid4r/cli/api_keys/api_key.rb
141
+ - lib/sendgrid4r/cli/api_keys/permission.rb
142
+ - lib/sendgrid4r/cli/campaign/campaign.rb
143
+ - lib/sendgrid4r/cli/campaign/contact/contact.rb
144
+ - lib/sendgrid4r/cli/campaign/contact/custom_field.rb
145
+ - lib/sendgrid4r/cli/campaign/contact/list.rb
146
+ - lib/sendgrid4r/cli/campaign/contact/recipient.rb
147
+ - lib/sendgrid4r/cli/campaign/contact/reserved_field.rb
148
+ - lib/sendgrid4r/cli/campaign/contact/segment.rb
149
+ - lib/sendgrid4r/cli/campaign/sender.rb
150
+ - lib/sendgrid4r/cli/cancel_schedules/batch_id.rb
151
+ - lib/sendgrid4r/cli/cancel_schedules/cancel_schedule.rb
152
+ - lib/sendgrid4r/cli/category.rb
153
+ - lib/sendgrid4r/cli/ipam/activity.rb
154
+ - lib/sendgrid4r/cli/ipam/ipam.rb
155
+ - lib/sendgrid4r/cli/ipam/whitelist.rb
156
+ - lib/sendgrid4r/cli/ips/address.rb
157
+ - lib/sendgrid4r/cli/ips/ip.rb
158
+ - lib/sendgrid4r/cli/ips/pool.rb
159
+ - lib/sendgrid4r/cli/ips/warmup.rb
160
+ - lib/sendgrid4r/cli/mail.rb
161
+ - lib/sendgrid4r/cli/settings/enforced_tls.rb
162
+ - lib/sendgrid4r/cli/settings/mail.rb
163
+ - lib/sendgrid4r/cli/settings/partner.rb
164
+ - lib/sendgrid4r/cli/settings/settings.rb
165
+ - lib/sendgrid4r/cli/settings/tracking.rb
166
+ - lib/sendgrid4r/cli/sg.rb
167
+ - lib/sendgrid4r/cli/sg_thor.rb
168
+ - lib/sendgrid4r/cli/stats/advanced.rb
169
+ - lib/sendgrid4r/cli/stats/category.rb
170
+ - lib/sendgrid4r/cli/stats/global.rb
171
+ - lib/sendgrid4r/cli/stats/parse.rb
172
+ - lib/sendgrid4r/cli/stats/stats.rb
173
+ - lib/sendgrid4r/cli/stats/subuser.rb
174
+ - lib/sendgrid4r/cli/subusers/monitor.rb
175
+ - lib/sendgrid4r/cli/subusers/subuser.rb
176
+ - lib/sendgrid4r/cli/suppressions/block.rb
177
+ - lib/sendgrid4r/cli/suppressions/bounce.rb
178
+ - lib/sendgrid4r/cli/suppressions/global_unsubscribe.rb
179
+ - lib/sendgrid4r/cli/suppressions/group.rb
180
+ - lib/sendgrid4r/cli/suppressions/group_unsubscribe.rb
181
+ - lib/sendgrid4r/cli/suppressions/invalid_email.rb
182
+ - lib/sendgrid4r/cli/suppressions/spam_report.rb
183
+ - lib/sendgrid4r/cli/suppressions/suppression.rb
184
+ - lib/sendgrid4r/cli/templates/template.rb
185
+ - lib/sendgrid4r/cli/templates/version.rb
186
+ - lib/sendgrid4r/cli/user.rb
187
+ - lib/sendgrid4r/cli/webhooks/event.rb
188
+ - lib/sendgrid4r/cli/webhooks/parse.rb
189
+ - lib/sendgrid4r/cli/webhooks/webhook.rb
190
+ - lib/sendgrid4r/cli/whitelabel/domain.rb
191
+ - lib/sendgrid4r/cli/whitelabel/ip.rb
192
+ - lib/sendgrid4r/cli/whitelabel/link.rb
193
+ - lib/sendgrid4r/cli/whitelabel/whitelabel.rb
124
194
  - lib/sendgrid4r/client.rb
125
195
  - lib/sendgrid4r/factory/campaign_factory.rb
126
196
  - lib/sendgrid4r/factory/condition_factory.rb
197
+ - lib/sendgrid4r/factory/event_factory.rb
127
198
  - lib/sendgrid4r/factory/mail_factory.rb
128
199
  - lib/sendgrid4r/factory/segment_factory.rb
129
200
  - lib/sendgrid4r/factory/version_factory.rb
@@ -183,9 +254,62 @@ files:
183
254
  - lib/sendgrid4r/rest/whitelabel/links.rb
184
255
  - lib/sendgrid4r/version.rb
185
256
  - sendgrid4r.gemspec
257
+ - spec/cli/api_keys/api_key_spec.rb
258
+ - spec/cli/api_keys/permission_spec.rb
259
+ - spec/cli/campaign/campaign_spec.rb
260
+ - spec/cli/campaign/contact/custom_field_spec.rb
261
+ - spec/cli/campaign/contact/list_spec.rb
262
+ - spec/cli/campaign/contact/recipient_spec.rb
263
+ - spec/cli/campaign/contact/reserved_field_spec.rb
264
+ - spec/cli/campaign/contact/segment_spec.rb
265
+ - spec/cli/campaign/sender_spec.rb
266
+ - spec/cli/cancel_schedules/batch_id_spec.rb
267
+ - spec/cli/cancel_schedules/cancel_schedule_spec.rb
268
+ - spec/cli/category_spec.rb
269
+ - spec/cli/ipam/activity_spec.rb
270
+ - spec/cli/ipam/ipam_spec.rb
271
+ - spec/cli/ipam/whitelist_spec.rb
272
+ - spec/cli/ips/address_spec.rb
273
+ - spec/cli/ips/ip_spec.rb
274
+ - spec/cli/ips/pool_spec.rb
275
+ - spec/cli/ips/warmup_spec.rb
276
+ - spec/cli/mail_spec.rb
277
+ - spec/cli/settings/enforced_tls_spec.rb
278
+ - spec/cli/settings/mail_spec.rb
279
+ - spec/cli/settings/partner_spec.rb
280
+ - spec/cli/settings/settings_spec.rb
281
+ - spec/cli/settings/tracking_spec.rb
282
+ - spec/cli/sg_spec.rb
283
+ - spec/cli/stats/advanced_spec.rb
284
+ - spec/cli/stats/category_spec.rb
285
+ - spec/cli/stats/global_spec.rb
286
+ - spec/cli/stats/parse_spec.rb
287
+ - spec/cli/stats/stats_spec.rb
288
+ - spec/cli/stats/subuser_spec.rb
289
+ - spec/cli/subusers/monitor_spec.rb
290
+ - spec/cli/subusers/subuser_spec.rb
291
+ - spec/cli/suppressions/block_spec.rb
292
+ - spec/cli/suppressions/bounce_spec.rb
293
+ - spec/cli/suppressions/global_unsubscribe_spec.rb
294
+ - spec/cli/suppressions/group_spec.rb
295
+ - spec/cli/suppressions/group_unsubscribe_spec.rb
296
+ - spec/cli/suppressions/invalid_email_spec.rb
297
+ - spec/cli/suppressions/spam_report_spec.rb
298
+ - spec/cli/suppressions/suppression_spec.rb
299
+ - spec/cli/templates/template_spec.rb
300
+ - spec/cli/templates/version_spec.rb
301
+ - spec/cli/user_spec.rb
302
+ - spec/cli/webhooks/event_spec.rb
303
+ - spec/cli/webhooks/parse_spec.rb
304
+ - spec/cli/webhooks/webhook_spec.rb
305
+ - spec/cli/whitelabel/domain_spec.rb
306
+ - spec/cli/whitelabel/ip_spec.rb
307
+ - spec/cli/whitelabel/link_spec.rb
308
+ - spec/cli/whitelabel/whitelabel_spec.rb
186
309
  - spec/client_spec.rb
187
310
  - spec/factory/campaign_factory_spec.rb
188
311
  - spec/factory/condition_factory_spec.rb
312
+ - spec/factory/event_factory_spec.rb
189
313
  - spec/factory/segment_factory_spec.rb
190
314
  - spec/factory/version_factory_spec.rb
191
315
  - spec/photo.jpg
@@ -267,9 +391,62 @@ signing_key:
267
391
  specification_version: 4
268
392
  summary: SendGrid Web API v3 module
269
393
  test_files:
394
+ - spec/cli/api_keys/api_key_spec.rb
395
+ - spec/cli/api_keys/permission_spec.rb
396
+ - spec/cli/campaign/campaign_spec.rb
397
+ - spec/cli/campaign/contact/custom_field_spec.rb
398
+ - spec/cli/campaign/contact/list_spec.rb
399
+ - spec/cli/campaign/contact/recipient_spec.rb
400
+ - spec/cli/campaign/contact/reserved_field_spec.rb
401
+ - spec/cli/campaign/contact/segment_spec.rb
402
+ - spec/cli/campaign/sender_spec.rb
403
+ - spec/cli/cancel_schedules/batch_id_spec.rb
404
+ - spec/cli/cancel_schedules/cancel_schedule_spec.rb
405
+ - spec/cli/category_spec.rb
406
+ - spec/cli/ipam/activity_spec.rb
407
+ - spec/cli/ipam/ipam_spec.rb
408
+ - spec/cli/ipam/whitelist_spec.rb
409
+ - spec/cli/ips/address_spec.rb
410
+ - spec/cli/ips/ip_spec.rb
411
+ - spec/cli/ips/pool_spec.rb
412
+ - spec/cli/ips/warmup_spec.rb
413
+ - spec/cli/mail_spec.rb
414
+ - spec/cli/settings/enforced_tls_spec.rb
415
+ - spec/cli/settings/mail_spec.rb
416
+ - spec/cli/settings/partner_spec.rb
417
+ - spec/cli/settings/settings_spec.rb
418
+ - spec/cli/settings/tracking_spec.rb
419
+ - spec/cli/sg_spec.rb
420
+ - spec/cli/stats/advanced_spec.rb
421
+ - spec/cli/stats/category_spec.rb
422
+ - spec/cli/stats/global_spec.rb
423
+ - spec/cli/stats/parse_spec.rb
424
+ - spec/cli/stats/stats_spec.rb
425
+ - spec/cli/stats/subuser_spec.rb
426
+ - spec/cli/subusers/monitor_spec.rb
427
+ - spec/cli/subusers/subuser_spec.rb
428
+ - spec/cli/suppressions/block_spec.rb
429
+ - spec/cli/suppressions/bounce_spec.rb
430
+ - spec/cli/suppressions/global_unsubscribe_spec.rb
431
+ - spec/cli/suppressions/group_spec.rb
432
+ - spec/cli/suppressions/group_unsubscribe_spec.rb
433
+ - spec/cli/suppressions/invalid_email_spec.rb
434
+ - spec/cli/suppressions/spam_report_spec.rb
435
+ - spec/cli/suppressions/suppression_spec.rb
436
+ - spec/cli/templates/template_spec.rb
437
+ - spec/cli/templates/version_spec.rb
438
+ - spec/cli/user_spec.rb
439
+ - spec/cli/webhooks/event_spec.rb
440
+ - spec/cli/webhooks/parse_spec.rb
441
+ - spec/cli/webhooks/webhook_spec.rb
442
+ - spec/cli/whitelabel/domain_spec.rb
443
+ - spec/cli/whitelabel/ip_spec.rb
444
+ - spec/cli/whitelabel/link_spec.rb
445
+ - spec/cli/whitelabel/whitelabel_spec.rb
270
446
  - spec/client_spec.rb
271
447
  - spec/factory/campaign_factory_spec.rb
272
448
  - spec/factory/condition_factory_spec.rb
449
+ - spec/factory/event_factory_spec.rb
273
450
  - spec/factory/segment_factory_spec.rb
274
451
  - spec/factory/version_factory_spec.rb
275
452
  - spec/photo.jpg