sendgrid4r 1.11.0 → 1.12.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 (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
@@ -67,19 +67,19 @@ module SendGrid4r::REST
67
67
  def post_sender(params:, &block)
68
68
  endpoint = MarketingCampaigns.url_sender
69
69
  resp = post(@auth, endpoint, params.to_h, &block)
70
- MarketingCampaigns.create_sender(resp)
70
+ finish(resp, @raw_resp) { |r| MarketingCampaigns.create_sender(r) }
71
71
  end
72
72
 
73
73
  def get_senders(&block)
74
74
  endpoint = MarketingCampaigns.url_sender
75
75
  resp = get(@auth, endpoint, &block)
76
- MarketingCampaigns.create_senders(resp)
76
+ finish(resp, @raw_resp) { |r| MarketingCampaigns.create_senders(r) }
77
77
  end
78
78
 
79
79
  def patch_sender(sender_id:, params:, &block)
80
80
  endpoint = MarketingCampaigns.url_sender(sender_id)
81
81
  resp = patch(@auth, endpoint, params.to_h, &block)
82
- MarketingCampaigns.create_sender(resp)
82
+ finish(resp, @raw_resp) { |r| MarketingCampaigns.create_sender(r) }
83
83
  end
84
84
 
85
85
  def delete_sender(sender_id:, &block)
@@ -95,7 +95,7 @@ module SendGrid4r::REST
95
95
  def get_sender(sender_id:, &block)
96
96
  endpoint = MarketingCampaigns.url_sender(sender_id)
97
97
  resp = get(@auth, endpoint, &block)
98
- MarketingCampaigns.create_sender(resp)
98
+ finish(resp, @raw_resp) { |r| MarketingCampaigns.create_sender(r) }
99
99
  end
100
100
  end
101
101
  end
@@ -33,10 +33,7 @@ module SendGrid4r::REST
33
33
 
34
34
  def execute(method, auth, endpoint, params, payload, &block)
35
35
  args = create_args(method, auth, endpoint, params, payload)
36
- body = RestClient::Request.execute(args, &block)
37
- return nil if block_given?
38
- return JSON.parse(body) unless body.nil? || body.length < 2
39
- body
36
+ RestClient::Request.execute(args, &block)
40
37
  rescue RestClient::TooManyRequests => e
41
38
  duration = e.response.headers[:x_ratelimit_remaining].to_i
42
39
  sleep duration if duration > 0
@@ -77,5 +74,10 @@ module SendGrid4r::REST
77
74
  def process_array_params(v)
78
75
  v.is_a?(Array) ? v.join(',') : v.to_s
79
76
  end
77
+
78
+ def finish(resp, raw_resp = false)
79
+ return resp if raw_resp || resp.nil? || resp.length < 2
80
+ yield(JSON.parse(resp))
81
+ end
80
82
  end
81
83
  end
@@ -21,12 +21,16 @@ module SendGrid4r::REST
21
21
 
22
22
  def get_enforced_tls(&block)
23
23
  resp = get(@auth, Settings::EnforcedTls.url, &block)
24
- Settings::EnforcedTls.create_enforced_tls(resp)
24
+ finish(resp, @raw_resp) do |r|
25
+ Settings::EnforcedTls.create_enforced_tls(r)
26
+ end
25
27
  end
26
28
 
27
29
  def patch_enforced_tls(params:, &block)
28
30
  resp = patch(@auth, Settings::EnforcedTls.url, params.to_h, &block)
29
- Settings::EnforcedTls.create_enforced_tls(resp)
31
+ finish(resp, @raw_resp) do |r|
32
+ Settings::EnforcedTls.create_enforced_tls(r)
33
+ end
30
34
  end
31
35
  end
32
36
  end
@@ -54,6 +54,13 @@ module SendGrid4r::REST
54
54
  ForwardSpam.new(resp['enabled'], resp['email'])
55
55
  end
56
56
 
57
+ SpamCheck = Struct.new(:enabled, :url, :max_score)
58
+
59
+ def self.create_spam_check(resp)
60
+ return resp if resp.nil?
61
+ SpamCheck.new(resp['enabled'], resp['url'], resp['max_score'])
62
+ end
63
+
57
64
  Template = Struct.new(:enabled, :html_content)
58
65
 
59
66
  def self.create_template(resp)
@@ -79,94 +86,141 @@ module SendGrid4r::REST
79
86
  params[:limit] = limit unless limit.nil?
80
87
  params[:offset] = offset unless offset.nil?
81
88
  resp = get(@auth, Settings::Mail.url, params, &block)
82
- Settings.create_results(resp)
89
+ finish(resp, @raw_resp) { |r| Settings.create_results(r) }
83
90
  end
84
91
 
85
92
  def get_settings_address_whitelist(&block)
86
93
  resp = get(@auth, Settings::Mail.url(:address_whitelist), &block)
87
- Settings::Mail.create_address_whitelist(resp)
94
+ finish(resp, @raw_resp) do |r|
95
+ Settings::Mail.create_address_whitelist(r)
96
+ end
88
97
  end
89
98
 
90
99
  def patch_settings_address_whitelist(params:, &block)
91
100
  endpoint = Settings::Mail.url(:address_whitelist)
92
101
  resp = patch(@auth, endpoint, params.to_h, &block)
93
- Settings::Mail.create_address_whitelist(resp)
102
+ finish(resp, @raw_resp) do |r|
103
+ Settings::Mail.create_address_whitelist(r)
104
+ end
94
105
  end
95
106
 
96
107
  def get_settings_bcc(&block)
97
108
  resp = get(@auth, Settings::Mail.url(:bcc), &block)
98
- Settings::Mail.create_bcc(resp)
109
+ finish(resp, @raw_resp) do |r|
110
+ Settings::Mail.create_bcc(r)
111
+ end
99
112
  end
100
113
 
101
114
  def patch_settings_bcc(params:, &block)
102
115
  endpoint = Settings::Mail.url(:bcc)
103
116
  resp = patch(@auth, endpoint, params.to_h, &block)
104
- Settings::Mail.create_bcc(resp)
117
+ finish(resp, @raw_resp) do |r|
118
+ Settings::Mail.create_bcc(r)
119
+ end
105
120
  end
106
121
 
107
122
  def get_settings_bounce_purge(&block)
108
123
  resp = get(@auth, Settings::Mail.url(:bounce_purge), &block)
109
- Settings::Mail.create_bounce_purge(resp)
124
+ finish(resp, @raw_resp) do |r|
125
+ Settings::Mail.create_bounce_purge(r)
126
+ end
110
127
  end
111
128
 
112
129
  def patch_settings_bounce_purge(params:, &block)
113
130
  endpoint = Settings::Mail.url(:bounce_purge)
114
131
  resp = patch(@auth, endpoint, params.to_h, &block)
115
- Settings::Mail.create_bounce_purge(resp)
132
+ finish(resp, @raw_resp) do |r|
133
+ Settings::Mail.create_bounce_purge(r)
134
+ end
116
135
  end
117
136
 
118
137
  def get_settings_footer(&block)
119
138
  resp = get(@auth, Settings::Mail.url(:footer), &block)
120
- Settings::Mail.create_footer(resp)
139
+ finish(resp, @raw_resp) do |r|
140
+ Settings::Mail.create_footer(r)
141
+ end
121
142
  end
122
143
 
123
144
  def patch_settings_footer(params:, &block)
124
145
  resp = patch(@auth, Settings::Mail.url(:footer), params.to_h, &block)
125
- Settings::Mail.create_footer(resp)
146
+ finish(resp, @raw_resp) do |r|
147
+ Settings::Mail.create_footer(r)
148
+ end
126
149
  end
127
150
 
128
151
  def get_settings_forward_bounce(&block)
129
152
  resp = get(@auth, Settings::Mail.url(:forward_bounce), &block)
130
- Settings::Mail.create_forward_bounce(resp)
153
+ finish(resp, @raw_resp) do |r|
154
+ Settings::Mail.create_forward_bounce(r)
155
+ end
131
156
  end
132
157
 
133
158
  def patch_settings_forward_bounce(params:, &block)
134
159
  endpoint = Settings::Mail.url(:forward_bounce)
135
160
  resp = patch(@auth, endpoint, params.to_h, &block)
136
- Settings::Mail.create_forward_bounce(resp)
161
+ finish(resp, @raw_resp) do |r|
162
+ Settings::Mail.create_forward_bounce(r)
163
+ end
137
164
  end
138
165
 
139
166
  def get_settings_forward_spam(&block)
140
167
  resp = get(@auth, Settings::Mail.url(:forward_spam), &block)
141
- Settings::Mail.create_forward_spam(resp)
168
+ finish(resp, @raw_resp) do |r|
169
+ Settings::Mail.create_forward_spam(r)
170
+ end
142
171
  end
143
172
 
144
173
  def patch_settings_forward_spam(params:, &block)
145
174
  endpoint = Settings::Mail.url(:forward_spam)
146
175
  resp = patch(@auth, endpoint, params.to_h, &block)
147
- Settings::Mail.create_forward_spam(resp)
176
+ finish(resp, @raw_resp) do |r|
177
+ Settings::Mail.create_forward_spam(r)
178
+ end
179
+ end
180
+
181
+ def get_settings_spam_check(&block)
182
+ resp = get(@auth, Settings::Mail.url(:spam_check), &block)
183
+ finish(resp, @raw_resp) do |r|
184
+ Settings::Mail.create_spam_check(r)
185
+ end
186
+ end
187
+
188
+ def patch_settings_spam_check(params:, &block)
189
+ endpoint = Settings::Mail.url(:spam_check)
190
+ resp = patch(@auth, endpoint, params.to_h, &block)
191
+ finish(resp, @raw_resp) do |r|
192
+ Settings::Mail.create_spam_check(r)
193
+ end
148
194
  end
149
195
 
150
196
  def get_settings_template(&block)
151
197
  resp = get(@auth, Settings::Mail.url(:template), &block)
152
- Settings::Mail.create_template(resp)
198
+ finish(resp, @raw_resp) do |r|
199
+ Settings::Mail.create_template(r)
200
+ end
153
201
  end
154
202
 
155
203
  def patch_settings_template(params:, &block)
156
204
  endpoint = Settings::Mail.url(:template)
157
205
  resp = patch(@auth, endpoint, params.to_h, &block)
158
- Settings::Mail.create_template(resp)
206
+ finish(resp, @raw_resp) do |r|
207
+ Settings::Mail.create_template(r)
208
+ end
159
209
  end
160
210
 
161
211
  def get_settings_plain_content(&block)
162
212
  resp = get(@auth, Settings::Mail.url(:plain_content), &block)
163
- Settings::Mail.create_plain_content(resp)
213
+ finish(resp, @raw_resp) do |r|
214
+ Settings::Mail.create_plain_content(r)
215
+ end
164
216
  end
165
217
 
166
218
  def patch_settings_plain_content(params:, &block)
167
219
  endpoint = Settings::Mail.url(:plain_content)
168
220
  resp = patch(@auth, endpoint, params.to_h, &block)
169
- Settings::Mail.create_plain_content(resp)
221
+ finish(resp, @raw_resp) do |r|
222
+ Settings::Mail.create_plain_content(r)
223
+ end
170
224
  end
171
225
  end
172
226
  end
@@ -26,18 +26,18 @@ module SendGrid4r::REST
26
26
  params[:limit] = limit unless limit.nil?
27
27
  params[:offset] = offset unless offset.nil?
28
28
  resp = get(@auth, Settings::Partner.url, params, &block)
29
- Settings.create_results(resp)
29
+ finish(resp, @raw_resp) { |r| Settings.create_results(r) }
30
30
  end
31
31
 
32
32
  def get_settings_new_relic(&block)
33
33
  resp = get(@auth, Settings::Partner.url(:new_relic), &block)
34
- Settings::Partner.create_partner(resp)
34
+ finish(resp, @raw_resp) { |r| Settings::Partner.create_partner(r) }
35
35
  end
36
36
 
37
37
  def patch_settings_new_relic(params:, &block)
38
38
  endpoint = Settings::Partner.url(:new_relic)
39
39
  resp = patch(@auth, endpoint, params.to_h, &block)
40
- Settings::Partner.create_partner(resp)
40
+ finish(resp, @raw_resp) { |r| Settings::Partner.create_partner(r) }
41
41
  end
42
42
  end
43
43
  end
@@ -58,52 +58,60 @@ module SendGrid4r::REST
58
58
  params[:limit] = limit unless limit.nil?
59
59
  params[:offset] = offset unless offset.nil?
60
60
  resp = get(@auth, Settings::Tracking.url, params, &block)
61
- Settings.create_results(resp)
61
+ finish(resp, @raw_resp) { |r| Settings.create_results(r) }
62
62
  end
63
63
 
64
64
  def get_settings_click(&block)
65
65
  resp = get(@auth, Settings::Tracking.url(:click), &block)
66
- Settings::Tracking.create_click(resp)
66
+ finish(resp, @raw_resp) { |r| Settings::Tracking.create_click(r) }
67
67
  end
68
68
 
69
69
  def patch_settings_click(params:, &block)
70
70
  endpoint = Settings::Tracking.url(:click)
71
71
  resp = patch(@auth, endpoint, params.to_h, &block)
72
- Settings::Tracking.create_click(resp)
72
+ finish(resp, @raw_resp) { |r| Settings::Tracking.create_click(r) }
73
73
  end
74
74
 
75
75
  def get_settings_google_analytics(&block)
76
76
  endpoint = Settings::Tracking.url(:google_analytics)
77
77
  resp = get(@auth, endpoint, &block)
78
- Settings::Tracking.create_google_analytics(resp)
78
+ finish(resp, @raw_resp) do |r|
79
+ Settings::Tracking.create_google_analytics(r)
80
+ end
79
81
  end
80
82
 
81
83
  def patch_settings_google_analytics(params:, &block)
82
84
  endpoint = Settings::Tracking.url(:google_analytics)
83
85
  resp = patch(@auth, endpoint, params.to_h, &block)
84
- Settings::Tracking.create_google_analytics(resp)
86
+ finish(resp, @raw_resp) do |r|
87
+ Settings::Tracking.create_google_analytics(r)
88
+ end
85
89
  end
86
90
 
87
91
  def get_settings_open(&block)
88
92
  resp = get(@auth, Settings::Tracking.url(:open), &block)
89
- Settings::Tracking.create_open(resp)
93
+ finish(resp, @raw_resp) { |r| Settings::Tracking.create_open(r) }
90
94
  end
91
95
 
92
96
  def patch_settings_open(params:, &block)
93
97
  resp = patch(@auth, Settings::Tracking.url(:open), params.to_h, &block)
94
- Settings::Tracking.create_open(resp)
98
+ finish(resp, @raw_resp) { |r| Settings::Tracking.create_open(r) }
95
99
  end
96
100
 
97
101
  def get_settings_subscription(&block)
98
102
  endpoint = Settings::Tracking.url(:subscription)
99
103
  resp = get(@auth, endpoint, &block)
100
- Settings::Tracking.create_subscription(resp)
104
+ finish(resp, @raw_resp) do |r|
105
+ Settings::Tracking.create_subscription(r)
106
+ end
101
107
  end
102
108
 
103
109
  def patch_settings_subscription(params:, &block)
104
110
  endpoint = Settings::Tracking.url(:subscription)
105
111
  resp = patch(@auth, endpoint, params.to_h, &block)
106
- Settings::Tracking.create_subscription(resp)
112
+ finish(resp, @raw_resp) do |r|
113
+ Settings::Tracking.create_subscription(r)
114
+ end
107
115
  end
108
116
  end
109
117
  end
@@ -38,19 +38,21 @@ module SendGrid4r::REST
38
38
  params[:offset] = offset.to_i unless offset.nil?
39
39
  endpoint = Sm::GlobalUnsubscribes.url_unsubscribes
40
40
  resp = get(@auth, endpoint, params, &block)
41
- Sm::GlobalUnsubscribes.create_supressions(resp)
41
+ finish(resp, @raw_resp) do |r|
42
+ Sm::GlobalUnsubscribes.create_supressions(r)
43
+ end
42
44
  end
43
45
 
44
46
  def post_global_suppressed_emails(recipient_emails:, &block)
45
47
  params = { recipient_emails: recipient_emails }
46
48
  endpoint = Sm::GlobalUnsubscribes.url
47
49
  resp = post(@auth, endpoint, params, &block)
48
- Sm.create_recipient_emails(resp)
50
+ finish(resp, @raw_resp) { |r| Sm.create_recipient_emails(r) }
49
51
  end
50
52
 
51
53
  def get_global_suppressed_email(email_address:, &block)
52
54
  resp = get(@auth, Sm::GlobalUnsubscribes.url(email_address), &block)
53
- Sm.create_recipient_email(resp)
55
+ finish(resp, @raw_resp) { |r| Sm.create_recipient_email(r) }
54
56
  end
55
57
 
56
58
  def delete_global_suppressed_email(email_address:, &block)
@@ -40,23 +40,23 @@ module SendGrid4r::REST
40
40
  params = { name: name, description: description }
41
41
  params[:is_default] = is_default unless is_default.nil?
42
42
  resp = post(@auth, Sm::Groups.url, params, &block)
43
- Sm::Groups.create_group(resp)
43
+ finish(resp, @raw_resp) { |r| Sm::Groups.create_group(r) }
44
44
  end
45
45
 
46
46
  def get_groups(&block)
47
47
  resp = get(@auth, Sm::Groups.url, &block)
48
- Sm::Groups.create_groups(resp)
48
+ finish(resp, @raw_resp) { |r| Sm::Groups.create_groups(r) }
49
49
  end
50
50
 
51
51
  def get_group(group_id:, &block)
52
52
  resp = get(@auth, Sm::Groups.url(group_id), &block)
53
- Sm::Groups.create_group(resp)
53
+ finish(resp, @raw_resp) { |r| Sm::Groups.create_group(r) }
54
54
  end
55
55
 
56
56
  def patch_group(group_id:, group:, &block)
57
57
  endpoint = Sm::Groups.url(group_id)
58
58
  resp = patch(@auth, endpoint, group.to_h, &block)
59
- Sm::Groups.create_group(resp)
59
+ finish(resp, @raw_resp) { |r| Sm::Groups.create_group(r) }
60
60
  end
61
61
 
62
62
  def delete_group(group_id:, &block)
@@ -39,18 +39,21 @@ module SendGrid4r::REST
39
39
  recipient_emails: recipient_emails,
40
40
  &block
41
41
  )
42
- Sm.create_recipient_emails(resp)
42
+ finish(resp, @raw_resp) { |r| Sm.create_recipient_emails(r) }
43
43
  end
44
44
 
45
45
  def get_suppressed_emails(group_id:, &block)
46
46
  endpoint = Sm::Suppressions.url(group_id)
47
- get(@auth, endpoint, &block)
47
+ resp = get(@auth, endpoint, &block)
48
+ finish(resp, @raw_resp) { |r| r }
48
49
  end
49
50
 
50
51
  def get_suppressions(email_address:, &block)
51
52
  endpoint = "#{BASE_URL}/asm/suppressions/#{email_address}"
52
53
  resp = get(@auth, endpoint, &block)
53
- Sm::Suppressions.create_suppressions(resp)
54
+ finish(resp, @raw_resp) do |r|
55
+ Sm::Suppressions.create_suppressions(r)
56
+ end
54
57
  end
55
58
 
56
59
  def delete_suppressed_email(group_id:, email_address:, &block)
@@ -35,7 +35,7 @@ module SendGrid4r::REST
35
35
  params[:limit] = limit.to_i unless limit.nil?
36
36
  params[:offset] = offset.to_i unless offset.nil?
37
37
  resp = get(@auth, SpamReports.url, params, &block)
38
- SpamReports.create_spam_reports(resp)
38
+ finish(resp, @raw_resp) { |r| SpamReports.create_spam_reports(r) }
39
39
  end
40
40
 
41
41
  def delete_spam_reports(delete_all: nil, emails: nil, &block)
@@ -50,7 +50,7 @@ module SendGrid4r::REST
50
50
  def get_spam_report(email:, &block)
51
51
  params = { email: email }
52
52
  resp = get(@auth, SpamReports.url(email), params, &block)
53
- SpamReports.create_spam_reports(resp)
53
+ finish(resp, @raw_resp) { |r| SpamReports.create_spam_reports(r) }
54
54
  end
55
55
 
56
56
  def delete_spam_report(email:, &block)
@@ -22,7 +22,7 @@ module SendGrid4r::REST
22
22
  country: country
23
23
  }
24
24
  resp = get(@auth, "#{BASE_URL}/geo/stats", params, &block)
25
- Stats.create_top_stats(resp)
25
+ finish(resp, @raw_resp) { |r| Stats.create_top_stats(r) }
26
26
  end
27
27
 
28
28
  def get_devices_stats(
@@ -37,7 +37,7 @@ module SendGrid4r::REST
37
37
  aggregated_by: aggregated_by
38
38
  }
39
39
  resp = get(@auth, "#{BASE_URL}/devices/stats", params, &block)
40
- Stats.create_top_stats(resp)
40
+ finish(resp, @raw_resp) { |r| Stats.create_top_stats(r) }
41
41
  end
42
42
 
43
43
  def get_clients_stats(
@@ -52,7 +52,7 @@ module SendGrid4r::REST
52
52
  aggregated_by: aggregated_by
53
53
  }
54
54
  resp = get(@auth, "#{BASE_URL}/clients/stats", params, &block)
55
- Stats.create_top_stats(resp)
55
+ finish(resp, @raw_resp) { |r| Stats.create_top_stats(r) }
56
56
  end
57
57
 
58
58
  def get_clients_type_stats(
@@ -70,25 +70,25 @@ module SendGrid4r::REST
70
70
  }
71
71
  endpoint = "#{BASE_URL}/clients/#{client_type}/stats"
72
72
  resp = get(@auth, endpoint, params, &block)
73
- Stats.create_top_stats(resp)
73
+ finish(resp, @raw_resp) { |r| Stats.create_top_stats(r) }
74
74
  end
75
75
 
76
76
  def get_mailbox_providers_stats(
77
77
  start_date:,
78
78
  end_date: nil,
79
79
  aggregated_by: nil,
80
- esps: nil,
80
+ mailbox_providers: nil,
81
81
  &block
82
82
  )
83
83
  params = {
84
84
  start_date: start_date,
85
85
  end_date: end_date,
86
86
  aggregated_by: aggregated_by,
87
- esps: esps
87
+ mailbox_providers: mailbox_providers
88
88
  }
89
89
  endpoint = "#{BASE_URL}/mailbox_providers/stats"
90
90
  resp = get(@auth, endpoint, params, &block)
91
- Stats.create_top_stats(resp)
91
+ finish(resp, @raw_resp) { |r| Stats.create_top_stats(r) }
92
92
  end
93
93
 
94
94
  def get_browsers_stats(
@@ -105,7 +105,7 @@ module SendGrid4r::REST
105
105
  browsers: browsers
106
106
  }
107
107
  resp = get(@auth, "#{BASE_URL}/browsers/stats", params, &block)
108
- Stats.create_top_stats(resp)
108
+ finish(resp, @raw_resp) { |r| Stats.create_top_stats(r) }
109
109
  end
110
110
  end
111
111
  end