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,89 +1,70 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
- module SendGrid4r
4
- module REST
5
- #
6
- # SendGrid Web API v3 CancelScheduledSends
7
- #
8
- module CancelScheduledSends
9
- include SendGrid4r::REST::Request
3
+ module SendGrid4r::REST
4
+ #
5
+ # SendGrid Web API v3 CancelScheduledSends
6
+ #
7
+ module CancelScheduledSends
8
+ include Request
10
9
 
11
- ScheduledSend = Struct.new(:batch_id, :status)
10
+ ScheduledSend = Struct.new(:batch_id, :status)
12
11
 
13
- def self.batch_url(batch_id = nil)
14
- url = "#{BASE_URL}/mail/batch"
15
- url = "#{url}/#{batch_id}" unless batch_id.nil?
16
- url
17
- end
12
+ def self.batch_url(batch_id = nil)
13
+ url = "#{BASE_URL}/mail/batch"
14
+ url = "#{url}/#{batch_id}" unless batch_id.nil?
15
+ url
16
+ end
18
17
 
19
- def self.scheduled_sends_url(batch_id = nil)
20
- url = "#{BASE_URL}/user/scheduled_sends"
21
- url = "#{url}/#{batch_id}" unless batch_id.nil?
22
- url
23
- end
18
+ def self.scheduled_sends_url(batch_id = nil)
19
+ url = "#{BASE_URL}/user/scheduled_sends"
20
+ url = "#{url}/#{batch_id}" unless batch_id.nil?
21
+ url
22
+ end
24
23
 
25
- def self.create_scheduled_sends(resp)
26
- return resp if resp.nil?
27
- scheduled_sends = []
28
- resp.each do |scheduled_send|
29
- scheduled_sends.push(
30
- SendGrid4r::REST::CancelScheduledSends.create_scheduled_send(
31
- scheduled_send
32
- )
33
- )
34
- end
35
- scheduled_sends
24
+ def self.create_scheduled_sends(resp)
25
+ return resp if resp.nil?
26
+ resp.map do |scheduled_send|
27
+ CancelScheduledSends.create_scheduled_send(scheduled_send)
36
28
  end
29
+ end
37
30
 
38
- def self.create_scheduled_send(resp)
39
- return resp if resp.nil?
40
- ScheduledSend.new(resp['batch_id'], resp['status'])
41
- end
31
+ def self.create_scheduled_send(resp)
32
+ return resp if resp.nil?
33
+ ScheduledSend.new(resp['batch_id'], resp['status'])
34
+ end
42
35
 
43
- def generate_batch_id(&block)
44
- endpoint = SendGrid4r::REST::CancelScheduledSends.batch_url
45
- resp = post(@auth, endpoint, nil, &block)
46
- SendGrid4r::REST::CancelScheduledSends.create_scheduled_send(resp)
47
- end
36
+ def generate_batch_id(&block)
37
+ resp = post(@auth, CancelScheduledSends.batch_url, nil, &block)
38
+ CancelScheduledSends.create_scheduled_send(resp)
39
+ end
48
40
 
49
- def validate_batch_id(batch_id:, &block)
50
- endpoint = SendGrid4r::REST::CancelScheduledSends.batch_url(batch_id)
51
- resp = get(@auth, endpoint, nil, &block)
52
- SendGrid4r::REST::CancelScheduledSends.create_scheduled_send(resp)
53
- end
41
+ def validate_batch_id(batch_id:, &block)
42
+ resp = get(@auth, CancelScheduledSends.batch_url(batch_id), nil, &block)
43
+ CancelScheduledSends.create_scheduled_send(resp)
44
+ end
54
45
 
55
- def post_scheduled_send(batch_id:, status:, &block)
56
- endpoint = SendGrid4r::REST::CancelScheduledSends.scheduled_sends_url
57
- payload = {}
58
- payload['batch_id'] = batch_id
59
- payload['status'] = status
60
- resp = post(@auth, endpoint, payload, &block)
61
- SendGrid4r::REST::CancelScheduledSends.create_scheduled_send(resp)
62
- end
46
+ def post_scheduled_send(batch_id:, status:, &block)
47
+ endpoint = CancelScheduledSends.scheduled_sends_url
48
+ payload = { batch_id: batch_id, status: status }
49
+ resp = post(@auth, endpoint, payload, &block)
50
+ CancelScheduledSends.create_scheduled_send(resp)
51
+ end
63
52
 
64
- def get_scheduled_sends(batch_id: nil, &block)
65
- endpoint = SendGrid4r::REST::CancelScheduledSends.scheduled_sends_url(
66
- batch_id
67
- )
68
- resp = get(@auth, endpoint, nil, nil, &block)
69
- SendGrid4r::REST::CancelScheduledSends.create_scheduled_sends(resp)
70
- end
53
+ def get_scheduled_sends(batch_id: nil, &block)
54
+ endpoint = CancelScheduledSends.scheduled_sends_url(batch_id)
55
+ resp = get(@auth, endpoint, nil, nil, &block)
56
+ CancelScheduledSends.create_scheduled_sends(resp)
57
+ end
71
58
 
72
- def patch_scheduled_send(batch_id:, status:, &block)
73
- endpoint = SendGrid4r::REST::CancelScheduledSends.scheduled_sends_url(
74
- batch_id
75
- )
76
- payload = {}
77
- payload['status'] = status
78
- patch(@auth, endpoint, payload, &block)
79
- end
59
+ def patch_scheduled_send(batch_id:, status:, &block)
60
+ endpoint = CancelScheduledSends.scheduled_sends_url(batch_id)
61
+ payload = { status: status }
62
+ patch(@auth, endpoint, payload, &block)
63
+ end
80
64
 
81
- def delete_scheduled_send(batch_id:, &block)
82
- endpoint = SendGrid4r::REST::CancelScheduledSends.scheduled_sends_url(
83
- batch_id
84
- )
85
- delete(@auth, endpoint, nil, &block)
86
- end
65
+ def delete_scheduled_send(batch_id:, &block)
66
+ endpoint = CancelScheduledSends.scheduled_sends_url(batch_id)
67
+ delete(@auth, endpoint, nil, &block)
87
68
  end
88
69
  end
89
70
  end
@@ -0,0 +1,31 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ module SendGrid4r::REST
4
+ #
5
+ # SendGrid Web API v3 Categories
6
+ #
7
+ module Categories
8
+ include Request
9
+
10
+ Category = Struct.new(:category)
11
+
12
+ def self.create_category(resp)
13
+ return resp if resp.nil?
14
+ Category.new(resp['category'])
15
+ end
16
+
17
+ def self.create_categories(resp)
18
+ return resp if resp.nil?
19
+ resp.map { |category| Categories.create_category(category) }
20
+ end
21
+
22
+ def get_categories(category: nil, limit: nil, offset: nil, &block)
23
+ params = {}
24
+ params['category'] = category unless category.nil?
25
+ params['limit'] = limit unless limit.nil?
26
+ params['offset'] = offset unless limit.nil?
27
+ resp = get(@auth, "#{BASE_URL}/categories", params, &block)
28
+ Categories.create_categories(resp)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,72 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ module SendGrid4r::REST
4
+ #
5
+ # SendGrid Web API v3 EmailActivity
6
+ #
7
+ module EmailActivity
8
+ include Request
9
+
10
+ #
11
+ # SendGrid Web API v3 Event - AggregatedBy
12
+ #
13
+ module Event
14
+ BOUNCES = 'bounces'
15
+ CLICKS = 'clicks'
16
+ DEFERRED = 'deferred'
17
+ DELIVERED = 'delivered'
18
+ DROPS = 'drops'
19
+ GROUP_UNSUBSCRIBE = 'group_unsubscribe'
20
+ GROUP_RESUBSCRIBE = 'group_resubscribe'
21
+ OPENS = 'opens'
22
+ PROCESSED = 'processed'
23
+ PARSEAPI = 'parseapi'
24
+ SPAM_REPORTS = 'spam_reports'
25
+ UNSUBSCRIBE = 'unsubscribes'
26
+ end
27
+
28
+ Activity = Struct.new(
29
+ :email, :event, :created, :category, :smtp_id, :asm_group_id,
30
+ :msg_id, :ip, :url, :reason
31
+ )
32
+
33
+ def self.url
34
+ "#{BASE_URL}/email_activity"
35
+ end
36
+
37
+ def self.create_activities(resp)
38
+ return resp if resp.nil?
39
+ resp.map { |activity| EmailActivity.create_activity(activity) }
40
+ end
41
+
42
+ def self.create_activity(resp)
43
+ return resp if resp.nil?
44
+ Activity.new(
45
+ resp['email'],
46
+ resp['event'],
47
+ resp['created'].nil? ? nil : Time.at(resp['created']),
48
+ resp['category'],
49
+ resp['smtp_id'],
50
+ resp['asm_group_id'],
51
+ resp['msg_id'],
52
+ resp['ip'],
53
+ resp['url'],
54
+ resp['reason']
55
+ )
56
+ end
57
+
58
+ def get_email_activities(
59
+ email: nil, events: nil, exclude_events: nil, start_time: nil,
60
+ end_time: nil, &block
61
+ )
62
+ params = {}
63
+ params['email'] = email unless email.nil?
64
+ params['events'] = events unless events.nil?
65
+ params['exclude_events'] = exclude_events unless exclude_events.nil?
66
+ params['start_time'] = start_time.to_i unless start_time.nil?
67
+ params['end_time'] = end_time.to_i unless end_time.nil?
68
+ resp = get(@auth, EmailActivity.url, params, &block)
69
+ EmailActivity.create_activities(resp)
70
+ end
71
+ end
72
+ end
@@ -1,81 +1,63 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
- module SendGrid4r
4
- module REST
5
- #
6
- # SendGrid Web API v3 InvalidEmails
7
- #
8
- module InvalidEmails
9
- include SendGrid4r::REST::Request
10
-
11
- InvalidEmail = Struct.new(
12
- :created, :email, :reason
13
- )
14
-
15
- def self.url(email = nil)
16
- url = "#{BASE_URL}/suppression/invalid_emails"
17
- url = "#{url}/#{email}" unless email.nil?
18
- url
19
- end
3
+ module SendGrid4r::REST
4
+ #
5
+ # SendGrid Web API v3 InvalidEmails
6
+ #
7
+ module InvalidEmails
8
+ include Request
9
+
10
+ InvalidEmail = Struct.new(:created, :email, :reason)
11
+
12
+ def self.url(email = nil)
13
+ url = "#{BASE_URL}/suppression/invalid_emails"
14
+ url = "#{url}/#{email}" unless email.nil?
15
+ url
16
+ end
20
17
 
21
- def self.create_invalid_emails(resp)
22
- return resp if resp.nil?
23
- invalid_emails = []
24
- resp.each do |invalid_email|
25
- invalid_emails.push(
26
- SendGrid4r::REST::InvalidEmails.create_invalid_email(invalid_email)
27
- )
28
- end
29
- invalid_emails
18
+ def self.create_invalid_emails(resp)
19
+ return resp if resp.nil?
20
+ resp.map do |invalid_email|
21
+ InvalidEmails.create_invalid_email(invalid_email)
30
22
  end
23
+ end
31
24
 
32
- def self.create_invalid_email(resp)
33
- return resp if resp.nil?
34
- created = Time.at(resp['created']) unless resp['created'].nil?
35
- InvalidEmail.new(
36
- created,
37
- resp['email'],
38
- resp['reason']
39
- )
40
- end
25
+ def self.create_invalid_email(resp)
26
+ return resp if resp.nil?
27
+ created = Time.at(resp['created']) unless resp['created'].nil?
28
+ InvalidEmail.new(created, resp['email'], resp['reason'])
29
+ end
41
30
 
42
- def get_invalid_emails(
43
- start_time: nil, end_time: nil, limit: nil, offset: nil, &block
44
- )
45
- params = {}
46
- params['start_time'] = start_time.to_i unless start_time.nil?
47
- params['end_time'] = end_time.to_i unless end_time.nil?
48
- params['limit'] = limit.to_i unless limit.nil?
49
- params['offset'] = offset.to_i unless offset.nil?
50
- resp = get(@auth, SendGrid4r::REST::InvalidEmails.url, params, &block)
51
- SendGrid4r::REST::InvalidEmails.create_invalid_emails(resp)
52
- end
31
+ def get_invalid_emails(
32
+ start_time: nil, end_time: nil, limit: nil, offset: nil, &block
33
+ )
34
+ params = {}
35
+ params[:start_time] = start_time.to_i unless start_time.nil?
36
+ params[:end_time] = end_time.to_i unless end_time.nil?
37
+ params[:limit] = limit.to_i unless limit.nil?
38
+ params[:offset] = offset.to_i unless offset.nil?
39
+ resp = get(@auth, InvalidEmails.url, params, &block)
40
+ InvalidEmails.create_invalid_emails(resp)
41
+ end
53
42
 
54
- def delete_invalid_emails(delete_all: nil, emails: nil, &block)
55
- endpoint = SendGrid4r::REST::InvalidEmails.url
56
- payload = {}
57
- if delete_all == true
58
- payload['delete_all'] = delete_all
59
- else
60
- payload['emails'] = emails
61
- end
62
- delete(@auth, endpoint, nil, payload, &block)
43
+ def delete_invalid_emails(delete_all: nil, emails: nil, &block)
44
+ if delete_all
45
+ payload = { delete_all: delete_all }
46
+ else
47
+ payload = { emails: emails }
63
48
  end
49
+ delete(@auth, InvalidEmails.url, nil, payload, &block)
50
+ end
64
51
 
65
- def get_invalid_email(email:, &block)
66
- endpoint = SendGrid4r::REST::InvalidEmails.url(email)
67
- params = {}
68
- params['email'] = email
69
- resp = get(@auth, endpoint, params, &block)
70
- SendGrid4r::REST::InvalidEmails.create_invalid_emails(resp)
71
- end
52
+ def get_invalid_email(email:, &block)
53
+ params = { email: email }
54
+ resp = get(@auth, InvalidEmails.url(email), params, &block)
55
+ InvalidEmails.create_invalid_emails(resp)
56
+ end
72
57
 
73
- def delete_invalid_email(email:, &block)
74
- endpoint = SendGrid4r::REST::InvalidEmails.url(email)
75
- params = {}
76
- params['email'] = email
77
- delete(@auth, endpoint, params, &block)
78
- end
58
+ def delete_invalid_email(email:, &block)
59
+ params = { email: email }
60
+ delete(@auth, InvalidEmails.url(email), params, &block)
79
61
  end
80
62
  end
81
63
  end
@@ -1,134 +1,109 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
- module SendGrid4r
4
- module REST
5
- #
6
- # SendGrid Web API v3 IpAccessManagement
7
- #
8
- module IpAccessManagement
9
- include SendGrid4r::REST::Request
10
-
11
- IpActivities = Struct.new(:result)
12
-
13
- IpActivity = Struct.new(
14
- :allowed, :auth_method, :first_at, :ip, :last_at, :location
15
- )
3
+ module SendGrid4r::REST
4
+ #
5
+ # SendGrid Web API v3 IpAccessManagement
6
+ #
7
+ module IpAccessManagement
8
+ include Request
16
9
 
17
- WhitelistedIps = Struct.new(:result)
10
+ IpActivities = Struct.new(:result)
18
11
 
19
- WhitelistedIp = Struct.new(:result)
12
+ IpActivity = Struct.new(
13
+ :allowed, :auth_method, :first_at, :ip, :last_at, :location
14
+ )
20
15
 
21
- WhitelistedIpResult = Struct.new(:id, :ip, :created_at, :updated_at)
16
+ WhitelistedIps = Struct.new(:result)
22
17
 
23
- def self.url_activity
24
- "#{BASE_URL}/access_settings/activity"
25
- end
18
+ WhitelistedIp = Struct.new(:result)
26
19
 
27
- def self.url_whitelist(rule_id = nil)
28
- url = "#{BASE_URL}/access_settings/whitelist"
29
- url = "#{url}/#{rule_id}" unless rule_id.nil?
30
- url
31
- end
20
+ WhitelistedIpResult = Struct.new(:id, :ip, :created_at, :updated_at)
32
21
 
33
- def self.create_ip_activities(resp)
34
- return resp if resp.nil?
35
- result = []
36
- resp['result'].each do |activity|
37
- result.push(
38
- SendGrid4r::REST::IpAccessManagement.create_ip_activity(activity)
39
- )
40
- end
41
- IpActivities.new(result)
42
- end
22
+ def self.url_activity
23
+ "#{BASE_URL}/access_settings/activity"
24
+ end
43
25
 
44
- def self.create_ip_activity(resp)
45
- return resp if resp.nil?
46
- first_at = Time.at(resp['first_at']) unless resp['first_at'].nil?
47
- last_at = Time.at(resp['last_at']) unless resp['last_at'].nil?
48
- IpActivity.new(
49
- resp['allowed'],
50
- resp['auth_method'],
51
- first_at,
52
- resp['ip'],
53
- last_at,
54
- resp['location']
55
- )
56
- end
26
+ def self.url_whitelist(rule_id = nil)
27
+ url = "#{BASE_URL}/access_settings/whitelist"
28
+ url = "#{url}/#{rule_id}" unless rule_id.nil?
29
+ url
30
+ end
57
31
 
58
- def self.create_whitelisted_ips(resp)
59
- return resp if resp.nil?
60
- result = []
61
- resp['result'].each do |whitelisted_ip|
62
- result.push(
63
- SendGrid4r::REST::IpAccessManagement.create_whitelisted_ip_result(
64
- whitelisted_ip
65
- )
66
- )
67
- end
68
- WhitelistedIps.new(result)
32
+ def self.create_ip_activities(resp)
33
+ return resp if resp.nil?
34
+ result = resp['result'].map do |activity|
35
+ IpAccessManagement.create_ip_activity(activity)
69
36
  end
37
+ IpActivities.new(result)
38
+ end
70
39
 
71
- def self.create_whitelisted_ip(resp)
72
- return resp if resp.nil?
73
- WhitelistedIp.new(
74
- SendGrid4r::REST::IpAccessManagement.create_whitelisted_ip_result(
75
- resp['result']
76
- )
77
- )
78
- end
40
+ def self.create_ip_activity(resp)
41
+ return resp if resp.nil?
42
+ first_at = Time.at(resp['first_at']) unless resp['first_at'].nil?
43
+ last_at = Time.at(resp['last_at']) unless resp['last_at'].nil?
44
+ IpActivity.new(
45
+ resp['allowed'],
46
+ resp['auth_method'],
47
+ first_at,
48
+ resp['ip'],
49
+ last_at,
50
+ resp['location']
51
+ )
52
+ end
79
53
 
80
- def self.create_whitelisted_ip_result(resp)
81
- return resp if resp.nil?
82
- created_at = Time.at(resp['created_at']) unless resp['created_at'].nil?
83
- updated_at = Time.at(resp['updated_at']) unless resp['updated_at'].nil?
84
- WhitelistedIpResult.new(resp['id'], resp['ip'], created_at, updated_at)
54
+ def self.create_whitelisted_ips(resp)
55
+ return resp if resp.nil?
56
+ result = resp['result'].map do |whitelisted_ip|
57
+ IpAccessManagement.create_whitelisted_ip_result(whitelisted_ip)
85
58
  end
59
+ WhitelistedIps.new(result)
60
+ end
86
61
 
87
- def get_ip_activities(limit: nil, &block)
88
- endpoint = SendGrid4r::REST::IpAccessManagement.url_activity
89
- params = {}
90
- params['limit'] = limit unless limit.nil?
91
- resp = get(@auth, endpoint, params, &block)
92
- SendGrid4r::REST::IpAccessManagement.create_ip_activities(resp)
93
- end
62
+ def self.create_whitelisted_ip(resp)
63
+ return resp if resp.nil?
64
+ WhitelistedIp.new(
65
+ IpAccessManagement.create_whitelisted_ip_result(resp['result'])
66
+ )
67
+ end
94
68
 
95
- def get_whitelisted_ips(&block)
96
- endpoint = SendGrid4r::REST::IpAccessManagement.url_whitelist
97
- resp = get(@auth, endpoint, &block)
98
- SendGrid4r::REST::IpAccessManagement.create_whitelisted_ips(resp)
99
- end
69
+ def self.create_whitelisted_ip_result(resp)
70
+ return resp if resp.nil?
71
+ created_at = Time.at(resp['created_at']) unless resp['created_at'].nil?
72
+ updated_at = Time.at(resp['updated_at']) unless resp['updated_at'].nil?
73
+ WhitelistedIpResult.new(resp['id'], resp['ip'], created_at, updated_at)
74
+ end
100
75
 
101
- def post_whitelisted_ips(ips:, &block)
102
- endpoint = SendGrid4r::REST::IpAccessManagement.url_whitelist
103
- ips_param = []
104
- ips.each do |ip|
105
- ip_param = {}
106
- ip_param['ip'] = ip
107
- ips_param.push(ip_param)
108
- end
109
- params = {}
110
- params['ips'] = ips_param
111
- resp = post(@auth, endpoint, params, &block)
112
- SendGrid4r::REST::IpAccessManagement.create_whitelisted_ips(resp)
113
- end
76
+ def get_ip_activities(limit: nil, &block)
77
+ params = {}
78
+ params[:limit] = limit unless limit.nil?
79
+ resp = get(@auth, IpAccessManagement.url_activity, params, &block)
80
+ IpAccessManagement.create_ip_activities(resp)
81
+ end
114
82
 
115
- def delete_whitelisted_ips(ids:, &block)
116
- endpoint = SendGrid4r::REST::IpAccessManagement.url_whitelist
117
- payload = {}
118
- payload['ids'] = ids
119
- delete(@auth, endpoint, nil, payload, &block)
120
- end
83
+ def get_whitelisted_ips(&block)
84
+ resp = get(@auth, IpAccessManagement.url_whitelist, &block)
85
+ IpAccessManagement.create_whitelisted_ips(resp)
86
+ end
121
87
 
122
- def get_whitelisted_ip(rule_id:, &block)
123
- endpoint = SendGrid4r::REST::IpAccessManagement.url_whitelist(rule_id)
124
- resp = get(@auth, endpoint, nil, &block)
125
- SendGrid4r::REST::IpAccessManagement.create_whitelisted_ip(resp)
126
- end
88
+ def post_whitelisted_ips(ips:, &block)
89
+ ips_param = ips.map { |ip| { ip: ip } }
90
+ params = { ips: ips_param }
91
+ resp = post(@auth, IpAccessManagement.url_whitelist, params, &block)
92
+ IpAccessManagement.create_whitelisted_ips(resp)
93
+ end
127
94
 
128
- def delete_whitelisted_ip(rule_id:, &block)
129
- endpoint = SendGrid4r::REST::IpAccessManagement.url_whitelist(rule_id)
130
- delete(@auth, endpoint, nil, &block)
131
- end
95
+ def delete_whitelisted_ips(ids:, &block)
96
+ payload = { ids: ids }
97
+ delete(@auth, IpAccessManagement.url_whitelist, nil, payload, &block)
98
+ end
99
+
100
+ def get_whitelisted_ip(rule_id:, &block)
101
+ resp = get(@auth, IpAccessManagement.url_whitelist(rule_id), nil, &block)
102
+ IpAccessManagement.create_whitelisted_ip(resp)
103
+ end
104
+
105
+ def delete_whitelisted_ip(rule_id:, &block)
106
+ delete(@auth, IpAccessManagement.url_whitelist(rule_id), nil, &block)
132
107
  end
133
108
  end
134
109
  end