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,33 +1,21 @@
1
1
  # encoding: utf-8
2
2
  require File.dirname(__FILE__) + '/../../spec_helper'
3
3
 
4
- describe SendGrid4r::REST::Webhooks::Event do
5
- describe 'integration test', :it do
6
- before do
7
- begin
4
+ module SendGrid4r::REST::Webhooks
5
+ describe Event do
6
+ describe 'integration test', :it do
7
+ before do
8
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
9
+ @client = SendGrid4r::Client.new(api_key: ENV['SILVER_API_KEY'])
13
10
  end
14
- end
15
11
 
16
- context 'without block call' do
17
- it '#get_settings_event_notification' do
18
- begin
12
+ context 'without block call' do
13
+ it '#get_settings_event_notification' do
19
14
  actual = @client.get_settings_event_notification
20
- expect(actual).to be_a(
21
- SendGrid4r::REST::Webhooks::Event::EventNotification
22
- )
23
- rescue RestClient::ExceptionWithResponse => e
24
- puts e.inspect
25
- raise e
15
+ expect(actual).to be_a(Event::EventNotification)
26
16
  end
27
- end
28
17
 
29
- it '#patch_settings_event_notification' do
30
- begin
18
+ it '#patch_settings_event_notification' do
31
19
  # get original settings
32
20
  actual = @client.get_settings_event_notification
33
21
  # patch the value
@@ -58,81 +46,67 @@ describe SendGrid4r::REST::Webhooks::Event do
58
46
  expect(edit.open).to eq(true)
59
47
  expect(edit.click).to eq(true)
60
48
  expect(edit.dropped).to eq(true)
61
- rescue RestClient::ExceptionWithResponse => e
62
- puts e.inspect
63
- raise e
64
49
  end
65
- end
66
50
 
67
- it '#test_settings_event_notification' do
68
- begin
51
+ it '#test_settings_event_notification' do
69
52
  @client.test_settings_event_notification(url: ENV['EVENT_URL'])
70
- rescue RestClient::ExceptionWithResponse => e
71
- puts e.inspect
72
- raise e
73
53
  end
74
54
  end
75
55
  end
76
- end
77
56
 
78
- describe 'unit test', :ut do
79
- let(:client) do
80
- SendGrid4r::Client.new(api_key: '')
81
- end
57
+ describe 'unit test', :ut do
58
+ let(:client) do
59
+ SendGrid4r::Client.new(api_key: '')
60
+ end
82
61
 
83
- let(:event_notification) do
84
- JSON.parse(
85
- '{'\
86
- '"enabled": true,'\
87
- '"url": "url",'\
88
- '"group_resubscribe": true,'\
89
- '"delivered": true,'\
90
- '"group_unsubscribe": true,'\
91
- '"spam_report": true,'\
92
- '"bounce": true,'\
93
- '"deferred": true,'\
94
- '"unsubscribe": true,'\
95
- '"processed": true,'\
96
- '"open": true,'\
97
- '"click": true,'\
98
- '"dropped": true'\
99
- '}'
100
- )
101
- end
62
+ let(:event_notification) do
63
+ JSON.parse(
64
+ '{'\
65
+ '"enabled": true,'\
66
+ '"url": "url",'\
67
+ '"group_resubscribe": true,'\
68
+ '"delivered": true,'\
69
+ '"group_unsubscribe": true,'\
70
+ '"spam_report": true,'\
71
+ '"bounce": true,'\
72
+ '"deferred": true,'\
73
+ '"unsubscribe": true,'\
74
+ '"processed": true,'\
75
+ '"open": true,'\
76
+ '"click": true,'\
77
+ '"dropped": true'\
78
+ '}'
79
+ )
80
+ end
102
81
 
103
- it '#get_settings_event_notification' do
104
- allow(client).to receive(:execute).and_return(event_notification)
105
- actual = client.get_settings_event_notification
106
- expect(actual).to be_a(
107
- SendGrid4r::REST::Webhooks::Event::EventNotification
108
- )
109
- end
82
+ it '#get_settings_event_notification' do
83
+ allow(client).to receive(:execute).and_return(event_notification)
84
+ actual = client.get_settings_event_notification
85
+ expect(actual).to be_a(Event::EventNotification)
86
+ end
110
87
 
111
- it '#patch_settings_event_notification' do
112
- allow(client).to receive(:execute).and_return(event_notification)
113
- actual = client.patch_settings_event_notification(params: nil)
114
- expect(actual).to be_a(
115
- SendGrid4r::REST::Webhooks::Event::EventNotification
116
- )
117
- end
88
+ it '#patch_settings_event_notification' do
89
+ allow(client).to receive(:execute).and_return(event_notification)
90
+ actual = client.patch_settings_event_notification(params: nil)
91
+ expect(actual).to be_a(Event::EventNotification)
92
+ end
118
93
 
119
- it 'creates event_notification instance' do
120
- actual = SendGrid4r::REST::Webhooks::Event.create_event_notification(
121
- event_notification
122
- )
123
- expect(actual.enabled).to eq(true)
124
- expect(actual.url).to eq('url')
125
- expect(actual.group_resubscribe).to eq(true)
126
- expect(actual.delivered).to eq(true)
127
- expect(actual.group_unsubscribe).to eq(true)
128
- expect(actual.spam_report).to eq(true)
129
- expect(actual.bounce).to eq(true)
130
- expect(actual.deferred).to eq(true)
131
- expect(actual.unsubscribe).to eq(true)
132
- expect(actual.processed).to eq(true)
133
- expect(actual.open).to eq(true)
134
- expect(actual.click).to eq(true)
135
- expect(actual.dropped).to eq(true)
94
+ it 'creates event_notification instance' do
95
+ actual = Event.create_event_notification(event_notification)
96
+ expect(actual.enabled).to eq(true)
97
+ expect(actual.url).to eq('url')
98
+ expect(actual.group_resubscribe).to eq(true)
99
+ expect(actual.delivered).to eq(true)
100
+ expect(actual.group_unsubscribe).to eq(true)
101
+ expect(actual.spam_report).to eq(true)
102
+ expect(actual.bounce).to eq(true)
103
+ expect(actual.deferred).to eq(true)
104
+ expect(actual.unsubscribe).to eq(true)
105
+ expect(actual.processed).to eq(true)
106
+ expect(actual.open).to eq(true)
107
+ expect(actual.click).to eq(true)
108
+ expect(actual.dropped).to eq(true)
109
+ end
136
110
  end
137
111
  end
138
112
  end
@@ -1,91 +1,71 @@
1
1
  # encoding: utf-8
2
2
  require File.dirname(__FILE__) + '/../../spec_helper'
3
3
 
4
- describe SendGrid4r::REST::Webhooks::Parse do
5
- describe 'integration test', :it do
6
- before do
7
- begin
4
+ module SendGrid4r::REST::Webhooks
5
+ describe Parse do
6
+ describe 'integration test', :it do
7
+ before do
8
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
9
+ @client = SendGrid4r::Client.new(api_key: ENV['SILVER_API_KEY'])
13
10
  end
14
- end
15
11
 
16
- context 'without block call' do
17
- it '#get_parse_settings' do
18
- begin
12
+ context 'without block call' do
13
+ it '#get_parse_settings' do
19
14
  parse_settings = @client.get_parse_settings
20
- expect(parse_settings).to be_a(
21
- SendGrid4r::REST::Webhooks::Parse::ParseSettings
22
- )
15
+ expect(parse_settings).to be_a(Parse::ParseSettings)
23
16
  expect(parse_settings.result).to be_a(Array)
24
- rescue RestClient::ExceptionWithResponse => e
25
- puts e.inspect
26
- raise e
27
17
  end
28
18
  end
29
19
  end
30
- end
31
20
 
32
- describe 'unit test', :ut do
33
- let(:client) do
34
- SendGrid4r::Client.new(api_key: '')
35
- end
21
+ describe 'unit test', :ut do
22
+ let(:client) do
23
+ SendGrid4r::Client.new(api_key: '')
24
+ end
36
25
 
37
- let(:parse_settings) do
38
- JSON.parse(
39
- '{'\
40
- '"result": ['\
41
- '{'\
42
- '"url": "http://mydomain.com/parse",'\
43
- '"hostname": "mail.mydomain.com",'\
44
- '"spam_check_outgoing": true'\
45
- '}'\
46
- ']'\
47
- '}'
48
- )
49
- end
26
+ let(:parse_settings) do
27
+ JSON.parse(
28
+ '{'\
29
+ '"result": ['\
30
+ '{'\
31
+ '"url": "http://mydomain.com/parse",'\
32
+ '"hostname": "mail.mydomain.com",'\
33
+ '"spam_check_outgoing": true'\
34
+ '}'\
35
+ ']'\
36
+ '}'
37
+ )
38
+ end
50
39
 
51
- let(:parse_setting) do
52
- JSON.parse(
53
- '{'\
54
- '"url": "http://mydomain.com/parse",'\
55
- '"hostname": "mail.mydomain.com",'\
56
- '"spam_check_outgoing": true'\
57
- '}'\
58
- )
59
- end
40
+ let(:parse_setting) do
41
+ JSON.parse(
42
+ '{'\
43
+ '"url": "http://mydomain.com/parse",'\
44
+ '"hostname": "mail.mydomain.com",'\
45
+ '"spam_check_outgoing": true'\
46
+ '}'\
47
+ )
48
+ end
60
49
 
61
- it '#get_parse_settings' do
62
- allow(client).to receive(:execute).and_return(parse_settings)
63
- actual = client.get_parse_settings
64
- expect(actual).to be_a(
65
- SendGrid4r::REST::Webhooks::Parse::ParseSettings
66
- )
67
- end
50
+ it '#get_parse_settings' do
51
+ allow(client).to receive(:execute).and_return(parse_settings)
52
+ actual = client.get_parse_settings
53
+ expect(actual).to be_a(Parse::ParseSettings)
54
+ end
68
55
 
69
- it 'creates parse_setting instance' do
70
- actual = SendGrid4r::REST::Webhooks::Parse.create_parse_setting(
71
- parse_setting
72
- )
73
- expect(actual).to be_a(
74
- SendGrid4r::REST::Webhooks::Parse::ParseSetting
75
- )
76
- expect(actual.url).to eq('http://mydomain.com/parse')
77
- expect(actual.hostname).to eq('mail.mydomain.com')
78
- expect(actual.spam_check_outgoing).to eq(true)
79
- end
56
+ it 'creates parse_setting instance' do
57
+ actual = Parse.create_parse_setting(parse_setting)
58
+ expect(actual).to be_a(Parse::ParseSetting)
59
+ expect(actual.url).to eq('http://mydomain.com/parse')
60
+ expect(actual.hostname).to eq('mail.mydomain.com')
61
+ expect(actual.spam_check_outgoing).to eq(true)
62
+ end
80
63
 
81
- it 'creates parse_settings instance' do
82
- actual = SendGrid4r::REST::Webhooks::Parse.create_parse_settings(
83
- parse_settings
84
- )
85
- expect(actual).to be_a(
86
- SendGrid4r::REST::Webhooks::Parse::ParseSettings
87
- )
88
- expect(actual.result).to be_a(Array)
64
+ it 'creates parse_settings instance' do
65
+ actual = Parse.create_parse_settings(parse_settings)
66
+ expect(actual).to be_a(Parse::ParseSettings)
67
+ expect(actual.result).to be_a(Array)
68
+ end
89
69
  end
90
70
  end
91
71
  end