sendgrid4r 1.8.1 → 1.10.0

Sign up to get free protection for your applications and to get access to all the features.
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