sendgrid4r 1.8.1 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Build Status](https://travis-ci.org/awwa/sendgrid4r.svg?branch=master)](https://travis-ci.org/awwa/sendgrid4r)
|
7
|
+
[![Gem Version](https://badge.fury.io/rb/sendgrid4r.svg)](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
|