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.
- checksums.yaml +4 -4
- data/.rubocop.yml +6 -2
- data/README.md +1 -0
- data/lib/sendgrid4r/factory/campaign_factory.rb +18 -5
- data/lib/sendgrid4r/factory/condition_factory.rb +1 -1
- data/lib/sendgrid4r/factory/mail_factory.rb +57 -0
- data/lib/sendgrid4r/factory/segment_factory.rb +2 -5
- data/lib/sendgrid4r/factory/version_factory.rb +1 -1
- data/lib/sendgrid4r/rest/api.rb +48 -49
- data/lib/sendgrid4r/rest/api_keys_management/api_keys.rb +75 -0
- data/lib/sendgrid4r/rest/api_keys_management/permissions.rb +31 -0
- data/lib/sendgrid4r/rest/blocks.rb +49 -68
- data/lib/sendgrid4r/rest/bounces.rb +45 -64
- data/lib/sendgrid4r/rest/cancel_scheduled_sends.rb +53 -72
- data/lib/sendgrid4r/rest/categories.rb +31 -0
- data/lib/sendgrid4r/rest/email_activity.rb +72 -0
- data/lib/sendgrid4r/rest/invalid_emails.rb +50 -68
- data/lib/sendgrid4r/rest/ip_access_management.rb +86 -111
- data/lib/sendgrid4r/rest/ips/addresses.rb +50 -59
- data/lib/sendgrid4r/rest/ips/pools.rb +42 -53
- data/lib/sendgrid4r/rest/ips/warmup.rb +46 -55
- data/lib/sendgrid4r/rest/mail/address.rb +14 -0
- data/lib/sendgrid4r/rest/mail/attachment.rb +22 -0
- data/lib/sendgrid4r/rest/mail/content.rb +10 -0
- data/lib/sendgrid4r/rest/mail/mail.rb +28 -0
- data/lib/sendgrid4r/rest/mail/mail_settings.rb +62 -0
- data/lib/sendgrid4r/rest/mail/params.rb +64 -0
- data/lib/sendgrid4r/rest/mail/personalization.rb +33 -0
- data/lib/sendgrid4r/rest/mail/tracking_settings.rb +74 -0
- data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/custom_fields.rb +12 -27
- data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/lists.rb +20 -34
- data/lib/sendgrid4r/rest/marketing_campaigns/contacts/recipients.rb +134 -0
- data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/reserved_fields.rb +6 -9
- data/lib/sendgrid4r/rest/marketing_campaigns/contacts/segments.rb +86 -0
- data/lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb +119 -0
- data/lib/sendgrid4r/rest/marketing_campaigns/senders.rb +101 -0
- data/lib/sendgrid4r/rest/request.rb +61 -63
- data/lib/sendgrid4r/rest/settings/enforced_tls.rb +23 -26
- data/lib/sendgrid4r/rest/settings/mail.rb +167 -183
- data/lib/sendgrid4r/rest/settings/partner.rb +33 -36
- data/lib/sendgrid4r/rest/settings/settings.rb +17 -22
- data/lib/sendgrid4r/rest/settings/tracking.rb +97 -107
- data/lib/sendgrid4r/rest/sm/global_unsubscribes.rb +52 -60
- data/lib/sendgrid4r/rest/sm/groups.rb +52 -58
- data/lib/sendgrid4r/rest/sm/sm.rb +15 -17
- data/lib/sendgrid4r/rest/sm/suppressions.rb +50 -67
- data/lib/sendgrid4r/rest/spam_reports.rb +49 -69
- data/lib/sendgrid4r/rest/stats/advanced.rb +100 -102
- data/lib/sendgrid4r/rest/stats/category.rb +31 -33
- data/lib/sendgrid4r/rest/stats/global.rb +17 -19
- data/lib/sendgrid4r/rest/stats/parse.rb +18 -20
- data/lib/sendgrid4r/rest/stats/stats.rb +59 -69
- data/lib/sendgrid4r/rest/stats/subuser.rb +70 -32
- data/lib/sendgrid4r/rest/subusers.rb +106 -134
- data/lib/sendgrid4r/rest/transactional_templates/templates.rb +63 -0
- data/lib/sendgrid4r/rest/transactional_templates/versions.rb +90 -0
- data/lib/sendgrid4r/rest/users.rb +125 -57
- data/lib/sendgrid4r/rest/webhooks/event.rb +36 -42
- data/lib/sendgrid4r/rest/webhooks/parse.rb +28 -37
- data/lib/sendgrid4r/rest/whitelabel/domains.rb +176 -222
- data/lib/sendgrid4r/rest/whitelabel/ips.rb +107 -128
- data/lib/sendgrid4r/rest/whitelabel/links.rb +131 -167
- data/lib/sendgrid4r/version.rb +1 -1
- data/lib/sendgrid4r.rb +23 -13
- data/sendgrid4r.gemspec +1 -1
- data/spec/client_spec.rb +12 -1
- data/spec/factory/campaign_factory_spec.rb +75 -35
- data/spec/factory/condition_factory_spec.rb +19 -18
- data/spec/factory/segment_factory_spec.rb +28 -21
- data/spec/factory/version_factory_spec.rb +28 -27
- data/spec/photo.jpg +0 -0
- data/spec/rest/api_keys_management/api_keys_spec.rb +174 -0
- data/spec/rest/api_keys_management/permissions_spec.rb +54 -0
- data/spec/rest/blocks_spec.rb +78 -106
- data/spec/rest/bounces_spec.rb +91 -118
- data/spec/rest/cancel_scheduled_sends_spec.rb +94 -149
- data/spec/rest/categories_spec.rb +77 -0
- data/spec/rest/email_activity_spec.rb +151 -0
- data/spec/rest/invalid_emails_spec.rb +85 -119
- data/spec/rest/ip_access_management_spec.rb +157 -195
- data/spec/rest/ips/addresses_spec.rb +94 -122
- data/spec/rest/ips/pools_spec.rb +84 -112
- data/spec/rest/ips/warmup_spec.rb +63 -71
- data/spec/rest/mail/address_spec.rb +28 -0
- data/spec/rest/mail/attachment_spec.rb +48 -0
- data/spec/rest/mail/content_spec.rb +32 -0
- data/spec/rest/mail/mail_settings_spec.rb +51 -0
- data/spec/rest/mail/mail_spec.rb +136 -0
- data/spec/rest/mail/params_spec.rb +152 -0
- data/spec/rest/mail/personalization_spec.rb +66 -0
- data/spec/rest/mail/tracking_settings_spec.rb +63 -0
- data/spec/rest/marketing_campaigns/contacts/custom_fields_spec.rb +146 -0
- data/spec/rest/marketing_campaigns/contacts/lists_spec.rb +307 -0
- data/spec/rest/marketing_campaigns/contacts/recipients_spec.rb +331 -0
- data/spec/rest/marketing_campaigns/contacts/reserved_fields_spec.rb +119 -0
- data/spec/rest/marketing_campaigns/contacts/segments_spec.rb +268 -0
- data/spec/rest/marketing_campaigns/marketing_campaigns_spec.rb +427 -0
- data/spec/rest/marketing_campaigns/senders_spec.rb +230 -0
- data/spec/rest/settings/enforced_tls_spec.rb +38 -54
- data/spec/rest/settings/mail_spec.rb +227 -330
- data/spec/rest/settings/partner_spec.rb +40 -59
- data/spec/rest/settings/settings_spec.rb +44 -42
- data/spec/rest/settings/tracking_spec.rb +130 -189
- data/spec/rest/sm/global_unsubscribes_spec.rb +47 -72
- data/spec/rest/sm/groups_spec.rb +88 -123
- data/spec/rest/sm/sm_spec.rb +32 -30
- data/spec/rest/sm/suppressions_spec.rb +105 -140
- data/spec/rest/spam_reports_spec.rb +81 -109
- data/spec/rest/stats/advanced_spec.rb +67 -125
- data/spec/rest/stats/category_spec.rb +27 -45
- data/spec/rest/stats/global_spec.rb +34 -42
- data/spec/rest/stats/parse_spec.rb +32 -30
- data/spec/rest/stats/stats_spec.rb +174 -172
- data/spec/rest/stats/subuser_spec.rb +97 -57
- data/spec/rest/subusers_spec.rb +156 -209
- data/spec/rest/transactional_templates/templates_spec.rb +199 -0
- data/spec/rest/transactional_templates/versions_spec.rb +228 -0
- data/spec/rest/users_spec.rb +176 -91
- data/spec/rest/webhooks/event_spec.rb +59 -85
- data/spec/rest/webhooks/parse_spec.rb +51 -71
- data/spec/rest/whitelabel/domains_spec.rb +333 -513
- data/spec/rest/whitelabel/ips_spec.rb +109 -147
- data/spec/rest/whitelabel/links_spec.rb +181 -265
- metadata +70 -40
- data/lib/sendgrid4r/rest/api_keys/api_keys.rb +0 -80
- data/lib/sendgrid4r/rest/api_keys/permissions.rb +0 -33
- data/lib/sendgrid4r/rest/campaigns/campaigns.rb +0 -126
- data/lib/sendgrid4r/rest/categories/categories.rb +0 -43
- data/lib/sendgrid4r/rest/contacts/recipients.rb +0 -150
- data/lib/sendgrid4r/rest/contacts/segments.rb +0 -97
- data/lib/sendgrid4r/rest/email_activity/email_activity.rb +0 -81
- data/lib/sendgrid4r/rest/templates/templates.rb +0 -69
- data/lib/sendgrid4r/rest/templates/versions.rb +0 -95
- data/spec/rest/api_keys/api_keys_spec.rb +0 -210
- data/spec/rest/api_keys/permissions_spec.rb +0 -65
- data/spec/rest/campaigns/campaigns_spec.rb +0 -492
- data/spec/rest/categories/categories_spec.rb +0 -96
- data/spec/rest/contacts/custom_fields_spec.rb +0 -174
- data/spec/rest/contacts/lists_spec.rb +0 -372
- data/spec/rest/contacts/recipients_spec.rb +0 -343
- data/spec/rest/contacts/reserved_fields_spec.rb +0 -146
- data/spec/rest/contacts/segments_spec.rb +0 -307
- data/spec/rest/email_activity/email_activity_spec.rb +0 -179
- data/spec/rest/templates/templates_spec.rb +0 -222
- data/spec/rest/templates/versions_spec.rb +0 -252
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e26da8c2d562f33c4745134539a4cd52eab206a7
|
4
|
+
data.tar.gz: 5625dabfb3c35a7caa4cd56245c2cca645498633
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9590d767b8b961ddb477e403426fd552191f801c4ffbefb92854c245469f10c3a328ae9a580575b5b44b439e894cb18afdd44b649ed40c8fd5f83eecee6fb9b4
|
7
|
+
data.tar.gz: b51a20b262ca15afd06406514ef0d7355a8c19c41e007a8a1e55eee2ed5e441e6bd0b5f1ba13753182533d963a642903aebaab0dfc983f6b76e8463fe250cffe
|
data/.rubocop.yml
CHANGED
@@ -9,7 +9,7 @@ MethodLength:
|
|
9
9
|
|
10
10
|
# Change limitation of module length
|
11
11
|
ModuleLength:
|
12
|
-
Max:
|
12
|
+
Max: 600
|
13
13
|
|
14
14
|
# Change limitation of the number of params
|
15
15
|
ParameterLists:
|
@@ -18,8 +18,12 @@ ParameterLists:
|
|
18
18
|
|
19
19
|
# Change limitation of AbcSize
|
20
20
|
AbcSize:
|
21
|
-
Max:
|
21
|
+
Max: 22
|
22
22
|
|
23
23
|
# Change numeric literals
|
24
24
|
NumericLiterals:
|
25
25
|
MinDigits: 20
|
26
|
+
|
27
|
+
# Disable force module and class style
|
28
|
+
ClassAndModuleChildren:
|
29
|
+
Enabled: false
|
data/README.md
CHANGED
@@ -4,6 +4,7 @@ This gem allows you to quickly and easily access to SendGrid Web API v3 for Ruby
|
|
4
4
|
See [api reference](https://sendgrid.com/docs/API_Reference/Web_API_v3/index.html) for more detail
|
5
5
|
|
6
6
|
[](https://travis-ci.org/awwa/sendgrid4r)
|
7
|
+
[](https://badge.fury.io/rb/sendgrid4r)
|
7
8
|
|
8
9
|
# [Documentation](https://github.com/awwa/sendgrid4r/wiki)
|
9
10
|
|
@@ -10,16 +10,29 @@ module SendGrid4r
|
|
10
10
|
segment_ids: nil, categories: nil, suppression_group_id: nil,
|
11
11
|
custom_unsubscribe_url: nil, ip_pool: nil, html_content: nil,
|
12
12
|
plain_content: nil)
|
13
|
-
|
13
|
+
campaign = REST::MarketingCampaigns::Campaign.new(
|
14
14
|
nil, title, subject, sender_id, list_ids, segment_ids, categories,
|
15
15
|
suppression_group_id, custom_unsubscribe_url, ip_pool, html_content,
|
16
16
|
plain_content, nil, nil
|
17
17
|
)
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
campaign.to_h.reject { |_key, value| value.nil? }
|
19
|
+
end
|
20
|
+
|
21
|
+
def create_sender(
|
22
|
+
nickname:, from:, reply_to:, address:, address_2:, city:, state:,
|
23
|
+
zip:, country:
|
24
|
+
)
|
25
|
+
REST::MarketingCampaigns::Sender.new(
|
26
|
+
nil, nickname, nil, nil, address, address_2,
|
27
|
+
city, state, zip, country, nil, nil, nil, nil
|
28
|
+
).tap do |sender|
|
29
|
+
sender.from = from
|
30
|
+
sender.reply_to = reply_to
|
21
31
|
end
|
22
|
-
|
32
|
+
end
|
33
|
+
|
34
|
+
def create_address(email:, name:)
|
35
|
+
REST::MarketingCampaigns::Address.new(email, name)
|
23
36
|
end
|
24
37
|
end
|
25
38
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
module SendGrid4r
|
4
|
+
module Factory
|
5
|
+
#
|
6
|
+
# SendGrid Web API v3 MailFactory implementation
|
7
|
+
#
|
8
|
+
module MailFactory
|
9
|
+
def self.create_params(
|
10
|
+
personalizations:, from:, subject:, content:
|
11
|
+
)
|
12
|
+
SendGrid4r::REST::Mail::Params.new(
|
13
|
+
nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
|
14
|
+
nil, nil, nil, nil, nil, nil, nil
|
15
|
+
).tap do |params|
|
16
|
+
params.personalizations = personalizations
|
17
|
+
params.from = from
|
18
|
+
params.content = content
|
19
|
+
params.subject = subject
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.create_address(email:, name: nil)
|
24
|
+
SendGrid4r::REST::Mail::Address.new(email, name)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.create_personalization(to:)
|
28
|
+
SendGrid4r::REST::Mail::Personalization.new(
|
29
|
+
nil, nil, nil, nil, nil, nil, nil, nil
|
30
|
+
).tap do |personalization|
|
31
|
+
personalization.to = to
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.create_attachment(content:, filename:)
|
36
|
+
SendGrid4r::REST::Mail::Attachment.new(
|
37
|
+
nil, nil, nil, nil, nil
|
38
|
+
).tap do |attachment|
|
39
|
+
attachment.content = content
|
40
|
+
attachment.filename = filename
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.create_mail_settings
|
45
|
+
SendGrid4r::REST::Mail::MailSettings.new(nil, nil, nil, nil, nil)
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.create_tracking_settings
|
49
|
+
SendGrid4r::REST::Mail::TrackingSettings.new(nil, nil, nil, nil)
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.create_content(type:, value:)
|
53
|
+
SendGrid4r::REST::Mail::Content.new(type, value)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -7,17 +7,14 @@ module SendGrid4r
|
|
7
7
|
#
|
8
8
|
class SegmentFactory
|
9
9
|
def create(name: nil, list_id: nil, conditions:)
|
10
|
-
segment =
|
10
|
+
segment = REST::MarketingCampaigns::Contacts::Segments::Segment.new(
|
11
11
|
nil,
|
12
12
|
name,
|
13
13
|
list_id,
|
14
14
|
conditions,
|
15
15
|
nil
|
16
16
|
)
|
17
|
-
|
18
|
-
hash.delete(:id)
|
19
|
-
hash.delete(:list_id) if list_id.nil?
|
20
|
-
hash
|
17
|
+
segment.to_h.reject { |_key, value| value.nil? }
|
21
18
|
end
|
22
19
|
end
|
23
20
|
end
|
@@ -9,7 +9,7 @@ module SendGrid4r
|
|
9
9
|
def create(
|
10
10
|
name:, subject: '<%subject%>',
|
11
11
|
html_content: '<%body%>', plain_content: '<%body%>', active: 1)
|
12
|
-
|
12
|
+
REST::TransactionalTemplates::Versions::Version.new(
|
13
13
|
nil,
|
14
14
|
nil,
|
15
15
|
nil,
|
data/lib/sendgrid4r/rest/api.rb
CHANGED
@@ -1,53 +1,52 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
|
-
module SendGrid4r
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
end
|
3
|
+
module SendGrid4r::REST
|
4
|
+
#
|
5
|
+
# SendGrid Web API v3
|
6
|
+
#
|
7
|
+
module API
|
8
|
+
include SendGrid4r::REST::TransactionalTemplates
|
9
|
+
include SendGrid4r::REST::TransactionalTemplates::Versions
|
10
|
+
include SendGrid4r::REST::Sm
|
11
|
+
include SendGrid4r::REST::Sm::Groups
|
12
|
+
include SendGrid4r::REST::Sm::Suppressions
|
13
|
+
include SendGrid4r::REST::Sm::GlobalUnsubscribes
|
14
|
+
include SendGrid4r::REST::Settings
|
15
|
+
include SendGrid4r::REST::Settings::EnforcedTls
|
16
|
+
include SendGrid4r::REST::Settings::Mail
|
17
|
+
include SendGrid4r::REST::Settings::Partner
|
18
|
+
include SendGrid4r::REST::Settings::Tracking
|
19
|
+
include SendGrid4r::REST::Ips::Addresses
|
20
|
+
include SendGrid4r::REST::Ips::Warmup
|
21
|
+
include SendGrid4r::REST::Ips::Pools
|
22
|
+
include SendGrid4r::REST::Categories
|
23
|
+
include SendGrid4r::REST::Stats::Global
|
24
|
+
include SendGrid4r::REST::Stats::Category
|
25
|
+
include SendGrid4r::REST::Stats::Subuser
|
26
|
+
include SendGrid4r::REST::Stats::Advanced
|
27
|
+
include SendGrid4r::REST::Stats::Parse
|
28
|
+
include SendGrid4r::REST::MarketingCampaigns
|
29
|
+
include SendGrid4r::REST::MarketingCampaigns::Contacts::CustomFields
|
30
|
+
include SendGrid4r::REST::MarketingCampaigns::Contacts::Lists
|
31
|
+
include SendGrid4r::REST::MarketingCampaigns::Contacts::Recipients
|
32
|
+
include SendGrid4r::REST::MarketingCampaigns::Contacts::ReservedFields
|
33
|
+
include SendGrid4r::REST::MarketingCampaigns::Contacts::Segments
|
34
|
+
include SendGrid4r::REST::ApiKeysManagement
|
35
|
+
include SendGrid4r::REST::ApiKeysManagement::Permissions
|
36
|
+
include SendGrid4r::REST::Subusers
|
37
|
+
include SendGrid4r::REST::EmailActivity
|
38
|
+
include SendGrid4r::REST::Whitelabel::Domains
|
39
|
+
include SendGrid4r::REST::Whitelabel::Ips
|
40
|
+
include SendGrid4r::REST::Whitelabel::Links
|
41
|
+
include SendGrid4r::REST::Users
|
42
|
+
include SendGrid4r::REST::Bounces
|
43
|
+
include SendGrid4r::REST::Blocks
|
44
|
+
include SendGrid4r::REST::InvalidEmails
|
45
|
+
include SendGrid4r::REST::SpamReports
|
46
|
+
include SendGrid4r::REST::CancelScheduledSends
|
47
|
+
include SendGrid4r::REST::Webhooks::Event
|
48
|
+
include SendGrid4r::REST::Webhooks::Parse
|
49
|
+
include SendGrid4r::REST::IpAccessManagement
|
50
|
+
include SendGrid4r::REST::Mail
|
52
51
|
end
|
53
52
|
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
module SendGrid4r::REST
|
4
|
+
#
|
5
|
+
# SendGrid Web API v3 ApiKeysManagement
|
6
|
+
#
|
7
|
+
module ApiKeysManagement
|
8
|
+
include Request
|
9
|
+
|
10
|
+
ApiKeys = Struct.new(:result)
|
11
|
+
ApiKey = Struct.new(:name, :api_key_id, :api_key, :scopes)
|
12
|
+
|
13
|
+
def self.url(api_key_id = nil)
|
14
|
+
url = "#{BASE_URL}/api_keys"
|
15
|
+
url = "#{url}/#{api_key_id}" unless api_key_id.nil?
|
16
|
+
url
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.create_api_keys(resp)
|
20
|
+
return resp if resp.nil?
|
21
|
+
api_keys = resp['result'].map do |api_key|
|
22
|
+
ApiKeysManagement.create_api_key(api_key)
|
23
|
+
end
|
24
|
+
ApiKeys.new(api_keys)
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.create_api_key(resp)
|
28
|
+
return resp if resp.nil?
|
29
|
+
ApiKey.new(
|
30
|
+
resp['name'],
|
31
|
+
resp['api_key_id'],
|
32
|
+
resp['api_key'],
|
33
|
+
resp['scopes']
|
34
|
+
)
|
35
|
+
end
|
36
|
+
|
37
|
+
def get_api_keys(&block)
|
38
|
+
resp = get(@auth, ApiKeysManagement.url, &block)
|
39
|
+
ApiKeysManagement.create_api_keys(resp)
|
40
|
+
end
|
41
|
+
|
42
|
+
def post_api_key(name:, scopes: nil, &block)
|
43
|
+
params = { name: name }
|
44
|
+
params[:scopes] = scopes unless scopes.nil?
|
45
|
+
resp = post(@auth, ApiKeysManagement.url, params, &block)
|
46
|
+
ApiKeysManagement.create_api_key(resp)
|
47
|
+
end
|
48
|
+
|
49
|
+
def get_api_key(api_key_id:, &block)
|
50
|
+
endpoint = ApiKeysManagement.url(api_key_id)
|
51
|
+
resp = get(@auth, endpoint, &block)
|
52
|
+
ApiKeysManagement.create_api_key(resp)
|
53
|
+
end
|
54
|
+
|
55
|
+
def delete_api_key(api_key_id:, &block)
|
56
|
+
delete(@auth, ApiKeysManagement.url(api_key_id), &block)
|
57
|
+
end
|
58
|
+
|
59
|
+
def patch_api_key(api_key_id:, name:, &block)
|
60
|
+
params = { name: name }
|
61
|
+
endpoint = ApiKeysManagement.url(api_key_id)
|
62
|
+
resp = patch(@auth, endpoint, params, &block)
|
63
|
+
ApiKeysManagement.create_api_key(resp)
|
64
|
+
end
|
65
|
+
|
66
|
+
def put_api_key(api_key_id:, name:, scopes:, &block)
|
67
|
+
params = {}
|
68
|
+
params[:name] = name unless name.nil?
|
69
|
+
params[:scopes] = scopes unless scopes.nil?
|
70
|
+
endpoint = ApiKeysManagement.url(api_key_id)
|
71
|
+
resp = put(@auth, endpoint, params, &block)
|
72
|
+
ApiKeysManagement.create_api_key(resp)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
module SendGrid4r::REST
|
4
|
+
#
|
5
|
+
# SendGrid Web API v3 ApiKeysManagement
|
6
|
+
#
|
7
|
+
module ApiKeysManagement
|
8
|
+
#
|
9
|
+
# SendGrid Web API v3 ApiKeysManagement Permissions
|
10
|
+
#
|
11
|
+
module Permissions
|
12
|
+
include Request
|
13
|
+
|
14
|
+
Permissions = Struct.new(:scopes)
|
15
|
+
|
16
|
+
def self.url
|
17
|
+
"#{BASE_URL}/scopes"
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.create_permissions(resp)
|
21
|
+
return resp if resp.nil?
|
22
|
+
Permissions.new(resp['scopes'])
|
23
|
+
end
|
24
|
+
|
25
|
+
def get_permissions(&block)
|
26
|
+
resp = get(@auth, ApiKeysManagement::Permissions.url, &block)
|
27
|
+
ApiKeysManagement::Permissions.create_permissions(resp)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -1,80 +1,61 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
|
-
module SendGrid4r
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
url = "#{url}/#{email}" unless email.nil?
|
18
|
-
url
|
19
|
-
end
|
3
|
+
module SendGrid4r::REST
|
4
|
+
#
|
5
|
+
# SendGrid Web API v3 Blocks
|
6
|
+
#
|
7
|
+
module Blocks
|
8
|
+
include Request
|
9
|
+
|
10
|
+
Block = Struct.new(:created, :email, :reason, :status)
|
11
|
+
|
12
|
+
def self.url(email = nil)
|
13
|
+
url = "#{BASE_URL}/suppression/blocks"
|
14
|
+
url = "#{url}/#{email}" unless email.nil?
|
15
|
+
url
|
16
|
+
end
|
20
17
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
blocks.push(SendGrid4r::REST::Blocks.create_block(block))
|
26
|
-
end
|
27
|
-
blocks
|
28
|
-
end
|
18
|
+
def self.create_blocks(resp)
|
19
|
+
return resp if resp.nil?
|
20
|
+
resp.map { |block| Blocks.create_block(block) }
|
21
|
+
end
|
29
22
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
resp['email'],
|
36
|
-
resp['reason'],
|
37
|
-
resp['status']
|
38
|
-
)
|
39
|
-
end
|
23
|
+
def self.create_block(resp)
|
24
|
+
return resp if resp.nil?
|
25
|
+
created = Time.at(resp['created']) unless resp['created'].nil?
|
26
|
+
Block.new(created, resp['email'], resp['reason'], resp['status'])
|
27
|
+
end
|
40
28
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
29
|
+
def get_blocks(
|
30
|
+
start_time: nil, end_time: nil, limit: nil, offset: nil, &block
|
31
|
+
)
|
32
|
+
params = {}
|
33
|
+
params[:start_time] = start_time.to_i unless start_time.nil?
|
34
|
+
params[:end_time] = end_time.to_i unless end_time.nil?
|
35
|
+
params[:limit] = limit.to_i unless limit.nil?
|
36
|
+
params[:offset] = offset.to_i unless offset.nil?
|
37
|
+
resp = get(@auth, Blocks.url, params, &block)
|
38
|
+
Blocks.create_blocks(resp)
|
39
|
+
end
|
52
40
|
|
53
|
-
|
54
|
-
|
55
|
-
payload = {}
|
56
|
-
|
57
|
-
|
58
|
-
else
|
59
|
-
payload['emails'] = emails
|
60
|
-
end
|
61
|
-
delete(@auth, endpoint, nil, payload, &block)
|
41
|
+
def delete_blocks(delete_all: nil, emails: nil, &block)
|
42
|
+
if delete_all
|
43
|
+
payload = { delete_all: delete_all }
|
44
|
+
else
|
45
|
+
payload = { emails: emails }
|
62
46
|
end
|
47
|
+
delete(@auth, Blocks.url, nil, payload, &block)
|
48
|
+
end
|
63
49
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
SendGrid4r::REST::Blocks.create_blocks(resp)
|
70
|
-
end
|
50
|
+
def get_block(email:, &block)
|
51
|
+
params = { email: email }
|
52
|
+
resp = get(@auth, Blocks.url(email), params, &block)
|
53
|
+
Blocks.create_blocks(resp)
|
54
|
+
end
|
71
55
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
params['email'] = email
|
76
|
-
delete(@auth, endpoint, params, &block)
|
77
|
-
end
|
56
|
+
def delete_block(email:, &block)
|
57
|
+
params = { email: email }
|
58
|
+
delete(@auth, Blocks.url(email), params, &block)
|
78
59
|
end
|
79
60
|
end
|
80
61
|
end
|
@@ -1,76 +1,57 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
|
-
module SendGrid4r
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
url = "#{url}/#{email}" unless email.nil?
|
18
|
-
url
|
19
|
-
end
|
3
|
+
module SendGrid4r::REST
|
4
|
+
#
|
5
|
+
# SendGrid Web API v3 Subusers
|
6
|
+
#
|
7
|
+
module Bounces
|
8
|
+
include Request
|
9
|
+
|
10
|
+
Bounce = Struct.new(:created, :email, :reason, :status)
|
11
|
+
|
12
|
+
def self.url(email = nil)
|
13
|
+
url = "#{BASE_URL}/suppression/bounces"
|
14
|
+
url = "#{url}/#{email}" unless email.nil?
|
15
|
+
url
|
16
|
+
end
|
20
17
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
bounces.push(SendGrid4r::REST::Bounces.create_bounce(bounce))
|
26
|
-
end
|
27
|
-
bounces
|
28
|
-
end
|
18
|
+
def self.create_bounces(resp)
|
19
|
+
return resp if resp.nil?
|
20
|
+
resp.map { |bounce| Bounces.create_bounce(bounce) }
|
21
|
+
end
|
29
22
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
resp['email'],
|
36
|
-
resp['reason'],
|
37
|
-
resp['status']
|
38
|
-
)
|
39
|
-
end
|
23
|
+
def self.create_bounce(resp)
|
24
|
+
return resp if resp.nil?
|
25
|
+
created = Time.at(resp['created']) unless resp['created'].nil?
|
26
|
+
Bounce.new(created, resp['email'], resp['reason'], resp['status'])
|
27
|
+
end
|
40
28
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
29
|
+
def get_bounces(start_time: nil, end_time: nil, &block)
|
30
|
+
params = {}
|
31
|
+
params[:start_time] = start_time.to_i unless start_time.nil?
|
32
|
+
params[:end_time] = end_time.to_i unless end_time.nil?
|
33
|
+
resp = get(@auth, Bounces.url, params, &block)
|
34
|
+
Bounces.create_bounces(resp)
|
35
|
+
end
|
48
36
|
|
49
|
-
|
50
|
-
|
51
|
-
payload = {}
|
52
|
-
|
53
|
-
|
54
|
-
else
|
55
|
-
payload['emails'] = emails
|
56
|
-
end
|
57
|
-
delete(@auth, endpoint, nil, payload, &block)
|
37
|
+
def delete_bounces(delete_all: nil, emails: nil, &block)
|
38
|
+
if delete_all
|
39
|
+
payload = { delete_all: delete_all }
|
40
|
+
else
|
41
|
+
payload = { emails: emails }
|
58
42
|
end
|
43
|
+
delete(@auth, Bounces.url, nil, payload, &block)
|
44
|
+
end
|
59
45
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
SendGrid4r::REST::Bounces.create_bounces(resp)
|
66
|
-
end
|
46
|
+
def get_bounce(email:, &block)
|
47
|
+
params = { email: email }
|
48
|
+
resp = get(@auth, Bounces.url(email), params, &block)
|
49
|
+
Bounces.create_bounces(resp)
|
50
|
+
end
|
67
51
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
params['email'] = email
|
72
|
-
delete(@auth, endpoint, params, &block)
|
73
|
-
end
|
52
|
+
def delete_bounce(email:, &block)
|
53
|
+
params = { email: email }
|
54
|
+
delete(@auth, Bounces.url(email), params, &block)
|
74
55
|
end
|
75
56
|
end
|
76
57
|
end
|