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,11 +1,125 @@
1
1
  # encoding: utf-8
2
2
  require File.dirname(__FILE__) + '/../../spec_helper'
3
3
 
4
- describe SendGrid4r::REST::Stats do
5
- describe 'unit test', :ut do
6
- it 'creates top_stats instance' do
7
- json =
8
- '['\
4
+ module SendGrid4r::REST::Stats
5
+ describe SendGrid4r::REST::Stats do
6
+ describe 'unit test', :ut do
7
+ it 'creates top_stats instance' do
8
+ json =
9
+ '['\
10
+ '{'\
11
+ '"date": "2015-01-01",'\
12
+ '"stats": ['\
13
+ '{'\
14
+ '"metrics": {'\
15
+ '"blocks": 0,'\
16
+ '"bounce_drops": 0,'\
17
+ '"bounces": 0,'\
18
+ '"clicks": 0,'\
19
+ '"deferred": 0,'\
20
+ '"delivered": 0,'\
21
+ '"invalid_emails": 0,'\
22
+ '"opens": 0,'\
23
+ '"processed": 0,'\
24
+ '"requests": 0,'\
25
+ '"spam_report_drops": 0,'\
26
+ '"spam_reports": 0,'\
27
+ '"unique_clicks": 0,'\
28
+ '"unique_opens": 0,'\
29
+ '"unsubscribe_drops": 0,'\
30
+ '"unsubscribes": 0'\
31
+ '},'\
32
+ '"name": "cat1",'\
33
+ '"type": "category"'\
34
+ '},'\
35
+ '{'\
36
+ '"metrics": {'\
37
+ '"blocks": 0,'\
38
+ '"bounce_drops": 0,'\
39
+ '"bounces": 0,'\
40
+ '"clicks": 0,'\
41
+ '"deferred": 0,'\
42
+ '"delivered": 0,'\
43
+ '"invalid_emails": 0,'\
44
+ '"opens": 0,'\
45
+ '"processed": 0,'\
46
+ '"requests": 0,'\
47
+ '"spam_report_drops": 0,'\
48
+ '"spam_reports": 0,'\
49
+ '"unique_clicks": 0,'\
50
+ '"unique_opens": 0,'\
51
+ '"unsubscribe_drops": 0,'\
52
+ '"unsubscribes": 0'\
53
+ '},'\
54
+ '"name": "cat2",'\
55
+ '"type": "category"'\
56
+ '}'\
57
+ ']'\
58
+ '},'\
59
+ '{'\
60
+ '"date": "2015-01-02",'\
61
+ '"stats": ['\
62
+ '{'\
63
+ '"metrics": {'\
64
+ '"blocks": 10,'\
65
+ '"bounce_drops": 0,'\
66
+ '"bounces": 0,'\
67
+ '"clicks": 0,'\
68
+ '"deferred": 0,'\
69
+ '"delivered": 0,'\
70
+ '"invalid_emails": 0,'\
71
+ '"opens": 0,'\
72
+ '"processed": 0,'\
73
+ '"requests": 10,'\
74
+ '"spam_report_drops": 0,'\
75
+ '"spam_reports": 0,'\
76
+ '"unique_clicks": 0,'\
77
+ '"unique_opens": 0,'\
78
+ '"unsubscribe_drops": 0,'\
79
+ '"unsubscribes": 0'\
80
+ '},'\
81
+ '"name": "cat1",'\
82
+ '"type": "category"'\
83
+ '},'\
84
+ '{'\
85
+ '"metrics": {'\
86
+ '"blocks": 0,'\
87
+ '"bounce_drops": 0,'\
88
+ '"bounces": 0,'\
89
+ '"clicks": 6,'\
90
+ '"deferred": 0,'\
91
+ '"delivered": 5,'\
92
+ '"invalid_emails": 0,'\
93
+ '"opens": 6,'\
94
+ '"processed": 0,'\
95
+ '"requests": 5,'\
96
+ '"spam_report_drops": 0,'\
97
+ '"spam_reports": 0,'\
98
+ '"unique_clicks": 5,'\
99
+ '"unique_opens": 5,'\
100
+ '"unsubscribe_drops": 0,'\
101
+ '"unsubscribes": 6'\
102
+ '},'\
103
+ '"name": "cat2",'\
104
+ '"type": "category"'\
105
+ '}'\
106
+ ']'\
107
+ '}'\
108
+ ']'
109
+ hash = JSON.parse(json)
110
+ actual = SendGrid4r::REST::Stats.create_top_stats(hash)
111
+ expect(actual).to be_a(Array)
112
+ actual.each do |top_stat|
113
+ expect(top_stat).to be_a(TopStat)
114
+ top_stat.stats.each do |stat|
115
+ expect(stat).to be_a(Stat)
116
+ expect(stat.metrics).to be_a(Metric)
117
+ end
118
+ end
119
+ end
120
+
121
+ it 'creates top_stat instance' do
122
+ json =
9
123
  '{'\
10
124
  '"date": "2015-01-01",'\
11
125
  '"stats": ['\
@@ -14,70 +128,65 @@ describe SendGrid4r::REST::Stats do
14
128
  '"blocks": 0,'\
15
129
  '"bounce_drops": 0,'\
16
130
  '"bounces": 0,'\
17
- '"clicks": 0,'\
131
+ '"clicks": 20,'\
18
132
  '"deferred": 0,'\
19
- '"delivered": 0,'\
133
+ '"delivered": 20,'\
20
134
  '"invalid_emails": 0,'\
21
- '"opens": 0,'\
135
+ '"opens": 20,'\
22
136
  '"processed": 0,'\
23
- '"requests": 0,'\
137
+ '"requests": 20,'\
24
138
  '"spam_report_drops": 0,'\
25
139
  '"spam_reports": 0,'\
26
- '"unique_clicks": 0,'\
27
- '"unique_opens": 0,'\
140
+ '"unique_clicks": 20,'\
141
+ '"unique_opens": 20,'\
28
142
  '"unsubscribe_drops": 0,'\
29
- '"unsubscribes": 0'\
143
+ '"unsubscribes": 20'\
30
144
  '},'\
31
145
  '"name": "cat1",'\
32
146
  '"type": "category"'\
33
147
  '},'\
34
148
  '{'\
35
149
  '"metrics": {'\
36
- '"blocks": 0,'\
150
+ '"blocks": 1,'\
37
151
  '"bounce_drops": 0,'\
38
152
  '"bounces": 0,'\
39
- '"clicks": 0,'\
153
+ '"clicks": 19,'\
40
154
  '"deferred": 0,'\
41
- '"delivered": 0,'\
155
+ '"delivered": 19,'\
42
156
  '"invalid_emails": 0,'\
43
- '"opens": 0,'\
157
+ '"opens": 19,'\
44
158
  '"processed": 0,'\
45
- '"requests": 0,'\
159
+ '"requests": 20,'\
46
160
  '"spam_report_drops": 0,'\
47
161
  '"spam_reports": 0,'\
48
- '"unique_clicks": 0,'\
49
- '"unique_opens": 0,'\
162
+ '"unique_clicks": 19,'\
163
+ '"unique_opens": 19,'\
50
164
  '"unsubscribe_drops": 0,'\
51
- '"unsubscribes": 0'\
165
+ '"unsubscribes": 19'\
52
166
  '},'\
53
167
  '"name": "cat2",'\
54
168
  '"type": "category"'\
55
- '}'\
56
- ']'\
57
- '},'\
58
- '{'\
59
- '"date": "2015-01-02",'\
60
- '"stats": ['\
169
+ '},'\
61
170
  '{'\
62
171
  '"metrics": {'\
63
- '"blocks": 10,'\
172
+ '"blocks": 0,'\
64
173
  '"bounce_drops": 0,'\
65
174
  '"bounces": 0,'\
66
- '"clicks": 0,'\
67
175
  '"deferred": 0,'\
68
- '"delivered": 0,'\
176
+ '"clicks": 5,'\
177
+ '"delivered": 5,'\
69
178
  '"invalid_emails": 0,'\
70
- '"opens": 0,'\
179
+ '"opens": 5,'\
71
180
  '"processed": 0,'\
72
- '"requests": 10,'\
181
+ '"requests": 5,'\
73
182
  '"spam_report_drops": 0,'\
74
183
  '"spam_reports": 0,'\
75
- '"unique_clicks": 0,'\
76
- '"unique_opens": 0,'\
184
+ '"unique_clicks": 5,'\
185
+ '"unique_opens": 5,'\
77
186
  '"unsubscribe_drops": 0,'\
78
- '"unsubscribes": 0'\
187
+ '"unsubscribes": 5'\
79
188
  '},'\
80
- '"name": "cat1",'\
189
+ '"name": "cat3",'\
81
190
  '"type": "category"'\
82
191
  '},'\
83
192
  '{'\
@@ -99,148 +208,41 @@ describe SendGrid4r::REST::Stats do
99
208
  '"unsubscribe_drops": 0,'\
100
209
  '"unsubscribes": 6'\
101
210
  '},'\
102
- '"name": "cat2",'\
211
+ '"name": "cat4",'\
212
+ '"type": "category"'\
213
+ '},'\
214
+ '{'\
215
+ '"metrics": {'\
216
+ '"blocks": 10,'\
217
+ '"bounce_drops": 0,'\
218
+ '"bounces": 0,'\
219
+ '"clicks": 0,'\
220
+ '"deferred": 0,'\
221
+ '"delivered": 0,'\
222
+ '"invalid_emails": 0,'\
223
+ '"opens": 0,'\
224
+ '"processed": 0,'\
225
+ '"requests": 10,'\
226
+ '"spam_report_drops": 0,'\
227
+ '"spam_reports": 0,'\
228
+ '"unique_clicks": 0,'\
229
+ '"unique_opens": 0,'\
230
+ '"unsubscribe_drops": 0,'\
231
+ '"unsubscribes": 0'\
232
+ '},'\
233
+ '"name": "cat5",'\
103
234
  '"type": "category"'\
104
235
  '}'\
105
236
  ']'\
106
- '}'\
107
- ']'
108
- hash = JSON.parse(json)
109
- actual = SendGrid4r::REST::Stats.create_top_stats(hash)
110
- expect(actual).to be_a(Array)
111
- actual.each do |top_stat|
112
- expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
113
- top_stat.stats.each do |stat|
114
- expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
115
- expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
237
+ '}'
238
+ hash = JSON.parse(json)
239
+ actual = SendGrid4r::REST::Stats.create_top_stat(hash)
240
+ expect(actual).to be_a(TopStat)
241
+ actual.stats.each do |stat|
242
+ expect(stat).to be_a(Stat)
243
+ expect(stat.metrics).to be_a(Metric)
116
244
  end
117
245
  end
118
246
  end
119
-
120
- it 'creates top_stat instance' do
121
- json =
122
- '{'\
123
- '"date": "2015-01-01",'\
124
- '"stats": ['\
125
- '{'\
126
- '"metrics": {'\
127
- '"blocks": 0,'\
128
- '"bounce_drops": 0,'\
129
- '"bounces": 0,'\
130
- '"clicks": 20,'\
131
- '"deferred": 0,'\
132
- '"delivered": 20,'\
133
- '"invalid_emails": 0,'\
134
- '"opens": 20,'\
135
- '"processed": 0,'\
136
- '"requests": 20,'\
137
- '"spam_report_drops": 0,'\
138
- '"spam_reports": 0,'\
139
- '"unique_clicks": 20,'\
140
- '"unique_opens": 20,'\
141
- '"unsubscribe_drops": 0,'\
142
- '"unsubscribes": 20'\
143
- '},'\
144
- '"name": "cat1",'\
145
- '"type": "category"'\
146
- '},'\
147
- '{'\
148
- '"metrics": {'\
149
- '"blocks": 1,'\
150
- '"bounce_drops": 0,'\
151
- '"bounces": 0,'\
152
- '"clicks": 19,'\
153
- '"deferred": 0,'\
154
- '"delivered": 19,'\
155
- '"invalid_emails": 0,'\
156
- '"opens": 19,'\
157
- '"processed": 0,'\
158
- '"requests": 20,'\
159
- '"spam_report_drops": 0,'\
160
- '"spam_reports": 0,'\
161
- '"unique_clicks": 19,'\
162
- '"unique_opens": 19,'\
163
- '"unsubscribe_drops": 0,'\
164
- '"unsubscribes": 19'\
165
- '},'\
166
- '"name": "cat2",'\
167
- '"type": "category"'\
168
- '},'\
169
- '{'\
170
- '"metrics": {'\
171
- '"blocks": 0,'\
172
- '"bounce_drops": 0,'\
173
- '"bounces": 0,'\
174
- '"deferred": 0,'\
175
- '"clicks": 5,'\
176
- '"delivered": 5,'\
177
- '"invalid_emails": 0,'\
178
- '"opens": 5,'\
179
- '"processed": 0,'\
180
- '"requests": 5,'\
181
- '"spam_report_drops": 0,'\
182
- '"spam_reports": 0,'\
183
- '"unique_clicks": 5,'\
184
- '"unique_opens": 5,'\
185
- '"unsubscribe_drops": 0,'\
186
- '"unsubscribes": 5'\
187
- '},'\
188
- '"name": "cat3",'\
189
- '"type": "category"'\
190
- '},'\
191
- '{'\
192
- '"metrics": {'\
193
- '"blocks": 0,'\
194
- '"bounce_drops": 0,'\
195
- '"bounces": 0,'\
196
- '"clicks": 6,'\
197
- '"deferred": 0,'\
198
- '"delivered": 5,'\
199
- '"invalid_emails": 0,'\
200
- '"opens": 6,'\
201
- '"processed": 0,'\
202
- '"requests": 5,'\
203
- '"spam_report_drops": 0,'\
204
- '"spam_reports": 0,'\
205
- '"unique_clicks": 5,'\
206
- '"unique_opens": 5,'\
207
- '"unsubscribe_drops": 0,'\
208
- '"unsubscribes": 6'\
209
- '},'\
210
- '"name": "cat4",'\
211
- '"type": "category"'\
212
- '},'\
213
- '{'\
214
- '"metrics": {'\
215
- '"blocks": 10,'\
216
- '"bounce_drops": 0,'\
217
- '"bounces": 0,'\
218
- '"clicks": 0,'\
219
- '"deferred": 0,'\
220
- '"delivered": 0,'\
221
- '"invalid_emails": 0,'\
222
- '"opens": 0,'\
223
- '"processed": 0,'\
224
- '"requests": 10,'\
225
- '"spam_report_drops": 0,'\
226
- '"spam_reports": 0,'\
227
- '"unique_clicks": 0,'\
228
- '"unique_opens": 0,'\
229
- '"unsubscribe_drops": 0,'\
230
- '"unsubscribes": 0'\
231
- '},'\
232
- '"name": "cat5",'\
233
- '"type": "category"'\
234
- '}'\
235
- ']'\
236
- '}'
237
- hash = JSON.parse(json)
238
- actual = SendGrid4r::REST::Stats.create_top_stat(hash)
239
- expect(actual).to be_a(SendGrid4r::REST::Stats::TopStat)
240
- actual.stats.each do |stat|
241
- expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
242
- expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
243
- end
244
- end
245
247
  end
246
248
  end
@@ -1,38 +1,38 @@
1
1
  # encoding: utf-8
2
2
  require File.dirname(__FILE__) + '/../../spec_helper'
3
3
 
4
- describe SendGrid4r::REST::Stats::Subuser do
5
- describe 'integration test', :it do
6
- before do
7
- Dotenv.load
8
- @client = SendGrid4r::Client.new(api_key: ENV['SILVER_API_KEY'])
9
- @subuser = ENV['SUBUSER2']
10
- @email1 = ENV['MAIL']
11
- @password1 = ENV['PASS']
12
- @ip = ENV['IP']
13
- subusers = @client.get_subusers
14
- count = subusers.count { |subuser| subuser.username == @subuser }
15
- @client.post_subuser(
16
- username: @subuser,
17
- email: @email1,
18
- password: @password1,
19
- ips: [@ip]
20
- ) if count == 0
21
- end
4
+ module SendGrid4r::REST::Stats
5
+ describe Subuser do
6
+ describe 'integration test', :it do
7
+ before do
8
+ Dotenv.load
9
+ @client = SendGrid4r::Client.new(api_key: ENV['SILVER_API_KEY'])
10
+ @subuser = ENV['SUBUSER2']
11
+ @email1 = ENV['MAIL']
12
+ @password1 = ENV['PASS']
13
+ @ip = ENV['IP']
14
+ subusers = @client.get_subusers
15
+ count = subusers.count { |subuser| subuser.username == @subuser }
16
+ @client.post_subuser(
17
+ username: @subuser,
18
+ email: @email1,
19
+ password: @password1,
20
+ ips: [@ip]
21
+ ) if count == 0
22
+ end
22
23
 
23
- context 'without block call' do
24
- it '#get_subusers_stats with mandatory params' do
25
- begin
24
+ context 'without block call' do
25
+ it '#get_subusers_stats with mandatory params' do
26
26
  top_stats = @client.get_subusers_stats(
27
27
  start_date: '2015-01-01',
28
28
  subusers: @subuser
29
29
  )
30
30
  expect(top_stats).to be_a(Array)
31
31
  top_stats.each do |global_stat|
32
- expect(global_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
32
+ expect(global_stat).to be_a(TopStat)
33
33
  global_stat.stats.each do |stat|
34
- expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
35
- expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
34
+ expect(stat).to be_a(Stat)
35
+ expect(stat.metrics).to be_a(Metric)
36
36
  expect(stat.metrics.blocks.nil?).to be(false)
37
37
  expect(stat.metrics.bounce_drops.nil?).to be(false)
38
38
  expect(stat.metrics.bounces.nil?).to be(false)
@@ -51,66 +51,106 @@ describe SendGrid4r::REST::Stats::Subuser do
51
51
  expect(stat.metrics.unsubscribes.nil?).to be(false)
52
52
  end
53
53
  end
54
- rescue RestClient::ExceptionWithResponse => e
55
- puts e.inspect
56
- raise e
57
54
  end
58
- end
59
55
 
60
- it '#get_subusers_stats with all params' do
61
- begin
56
+ it '#get_subusers_stats with all params' do
62
57
  top_stats = @client.get_subusers_stats(
63
58
  start_date: '2015-01-01',
64
59
  end_date: '2015-01-02',
65
- aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK,
60
+ aggregated_by: :week,
66
61
  subusers: @subuser
67
62
  )
68
63
  expect(top_stats.class).to be(Array)
69
64
  top_stats.each do |global_stat|
70
- expect(global_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
65
+ expect(global_stat).to be_a(TopStat)
71
66
  global_stat.stats.each do |stat|
72
- expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
73
- expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
67
+ expect(stat).to be_a(Stat)
68
+ expect(stat.metrics).to be_a(Metric)
74
69
  end
75
70
  end
76
- rescue RestClient::ExceptionWithResponse => e
77
- puts e.inspect
78
- raise e
79
71
  end
80
- end
81
72
 
82
- it '#get_subusers_stats_sums with mandatory params' do
83
- begin
73
+ it '#get_subusers_stats_sums with mandatory params' do
84
74
  top_stat = @client.get_subusers_stats_sums(start_date: '2015-01-01')
85
- expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
75
+ expect(top_stat).to be_a(TopStat)
86
76
  top_stat.stats.each do |stat|
87
- expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
88
- expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
77
+ expect(stat).to be_a(Stat)
78
+ expect(stat.metrics).to be_a(Metric)
89
79
  end
90
- rescue RestClient::ExceptionWithResponse => e
91
- puts e.inspect
92
- raise e
93
80
  end
94
- end
95
81
 
96
- it '#get_subusers_stats_sums with all params' do
97
- begin
82
+ it '#get_subusers_stats_sums with all params' do
98
83
  top_stat = @client.get_subusers_stats_sums(
99
84
  start_date: '2015-01-01',
100
85
  end_date: '2015-01-02',
101
- sort_by_metric: 'opens',
102
- sort_by_direction: 'desc',
86
+ sort_by_metric: :opens,
87
+ sort_by_direction: :desc,
88
+ limit: 5,
89
+ offset: 0
90
+ )
91
+ expect(top_stat).to be_a(TopStat)
92
+ top_stat.stats.each do |stat|
93
+ expect(stat).to be_a(Stat)
94
+ expect(stat.metrics).to be_a(Metric)
95
+ end
96
+ end
97
+
98
+ it '#get_subusers_stats_monthly with mandatory params' do
99
+ top_stat = @client.get_subusers_stats_monthly(
100
+ date: '2015-01-01'
101
+ )
102
+ expect(top_stat).to be_a(TopStat)
103
+ top_stat.stats.each do |stat|
104
+ expect(stat).to be_a(Stat)
105
+ expect(stat.metrics).to be_a(Metric)
106
+ end
107
+ end
108
+
109
+ it '#get_subusers_stats_monthly with all params' do
110
+ begin
111
+ top_stat = @client.get_subusers_stats_monthly(
112
+ date: '2015-01-01',
113
+ subuser: ENV['SUBUSER'],
114
+ sort_by_metric: :opens,
115
+ sort_by_direction: :desc,
116
+ limit: 5,
117
+ offset: 0
118
+ )
119
+ expect(top_stat).to be_a(TopStat)
120
+ top_stat.stats.each do |stat|
121
+ expect(stat).to be_a(Stat)
122
+ expect(stat.metrics).to be_a(Metric)
123
+ end
124
+ rescue RestClient::ExceptionWithResponse => e
125
+ puts e.inspect
126
+ raise e
127
+ end
128
+ end
129
+
130
+ it '#get_subuser_stats_monthly with mandatory params' do
131
+ top_stat = @client.get_subuser_stats_monthly(
132
+ subuser_name: ENV['SUBUSER'], date: '2015-01-01'
133
+ )
134
+ expect(top_stat).to be_a(TopStat)
135
+ top_stat.stats.each do |stat|
136
+ expect(stat).to be_a(Stat)
137
+ expect(stat.metrics).to be_a(Metric)
138
+ end
139
+ end
140
+
141
+ it '#get_subuser_stats_monthly with all params' do
142
+ top_stat = @client.get_subuser_stats_monthly(
143
+ subuser_name: ENV['SUBUSER'], date: '2015-01-01',
144
+ sort_by_metric: :opens,
145
+ sort_by_direction: :desc,
103
146
  limit: 5,
104
147
  offset: 0
105
148
  )
106
- expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
149
+ expect(top_stat).to be_a(TopStat)
107
150
  top_stat.stats.each do |stat|
108
- expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
109
- expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
151
+ expect(stat).to be_a(Stat)
152
+ expect(stat.metrics).to be_a(Metric)
110
153
  end
111
- rescue RestClient::ExceptionWithResponse => e
112
- puts e.inspect
113
- raise e
114
154
  end
115
155
  end
116
156
  end