broadcast-ruby 0.2.0 → 0.4.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/CHANGELOG.md +146 -0
- data/Gemfile.lock +3 -2
- data/README.md +434 -22
- data/SDK-COVERAGE.md +469 -0
- data/lib/broadcast/client.rb +65 -138
- data/lib/broadcast/configuration.rb +53 -4
- data/lib/broadcast/connection.rb +278 -0
- data/lib/broadcast/debug_logger.rb +64 -0
- data/lib/broadcast/delivery_method.rb +22 -2
- data/lib/broadcast/errors.rb +27 -1
- data/lib/broadcast/resources/autopilots.rb +100 -0
- data/lib/broadcast/resources/discovery.rb +36 -0
- data/lib/broadcast/resources/global_suppressions.rb +43 -0
- data/lib/broadcast/resources/migration.rb +75 -0
- data/lib/broadcast/resources/opt_in_forms.rb +12 -0
- data/lib/broadcast/resources/subscribers.rb +24 -0
- data/lib/broadcast/resources/suppressions.rb +56 -0
- data/lib/broadcast/resources/templates.rb +17 -0
- data/lib/broadcast/resources/transactionals.rb +39 -2
- data/lib/broadcast/response.rb +104 -0
- data/lib/broadcast/version.rb +1 -1
- data/lib/broadcast/webhook.rb +34 -0
- data/lib/broadcast.rb +8 -0
- metadata +11 -3
- data/.rubocop.yml +0 -50
data/lib/broadcast/webhook.rb
CHANGED
|
@@ -7,6 +7,40 @@ module Broadcast
|
|
|
7
7
|
module Webhook
|
|
8
8
|
TIMESTAMP_TOLERANCE = 300 # 5 minutes
|
|
9
9
|
|
|
10
|
+
# Every event type a webhook endpoint can subscribe to, mirroring
|
|
11
|
+
# WebhookEndpoint::AVAILABLE_EVENT_TYPES server-side. Use these when
|
|
12
|
+
# creating an endpoint — an unknown event type is dropped silently.
|
|
13
|
+
EMAIL_EVENTS = %w[
|
|
14
|
+
email.sent email.delivered email.delivery_delayed email.complained
|
|
15
|
+
email.bounced email.opened email.clicked email.failed
|
|
16
|
+
].freeze
|
|
17
|
+
|
|
18
|
+
SUBSCRIBER_EVENTS = %w[
|
|
19
|
+
subscriber.created subscriber.updated subscriber.deleted
|
|
20
|
+
subscriber.subscribed subscriber.unsubscribed subscriber.bounced
|
|
21
|
+
subscriber.complained
|
|
22
|
+
].freeze
|
|
23
|
+
|
|
24
|
+
BROADCAST_EVENTS = %w[
|
|
25
|
+
broadcast.scheduled broadcast.queueing broadcast.sending broadcast.sent
|
|
26
|
+
broadcast.failed broadcast.partial_failure broadcast.aborted
|
|
27
|
+
broadcast.paused
|
|
28
|
+
].freeze
|
|
29
|
+
|
|
30
|
+
SEQUENCE_EVENTS = %w[
|
|
31
|
+
sequence.subscriber_added sequence.subscriber_completed
|
|
32
|
+
sequence.subscriber_moved sequence.subscriber_removed
|
|
33
|
+
sequence.subscriber_paused sequence.subscriber_resumed
|
|
34
|
+
sequence.subscriber_error
|
|
35
|
+
].freeze
|
|
36
|
+
|
|
37
|
+
# Delivery-machinery events, not content events.
|
|
38
|
+
SYSTEM_EVENTS = %w[message.attempt.exhausted test.webhook].freeze
|
|
39
|
+
|
|
40
|
+
EVENT_TYPES = (
|
|
41
|
+
EMAIL_EVENTS + SUBSCRIBER_EVENTS + BROADCAST_EVENTS + SEQUENCE_EVENTS + SYSTEM_EVENTS
|
|
42
|
+
).freeze
|
|
43
|
+
|
|
10
44
|
module_function
|
|
11
45
|
|
|
12
46
|
def verify(payload, signature_header, timestamp_header, secret:, now: nil)
|
data/lib/broadcast.rb
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
require_relative 'broadcast/version'
|
|
4
4
|
require_relative 'broadcast/errors'
|
|
5
|
+
require_relative 'broadcast/response'
|
|
5
6
|
require_relative 'broadcast/configuration'
|
|
7
|
+
require_relative 'broadcast/debug_logger'
|
|
8
|
+
require_relative 'broadcast/connection'
|
|
6
9
|
require_relative 'broadcast/client'
|
|
7
10
|
require_relative 'broadcast/webhook'
|
|
8
11
|
require_relative 'broadcast/resources/base'
|
|
@@ -15,6 +18,11 @@ require_relative 'broadcast/resources/webhook_endpoints'
|
|
|
15
18
|
require_relative 'broadcast/resources/transactionals'
|
|
16
19
|
require_relative 'broadcast/resources/opt_in_forms'
|
|
17
20
|
require_relative 'broadcast/resources/email_servers'
|
|
21
|
+
require_relative 'broadcast/resources/autopilots'
|
|
22
|
+
require_relative 'broadcast/resources/discovery'
|
|
23
|
+
require_relative 'broadcast/resources/suppressions'
|
|
24
|
+
require_relative 'broadcast/resources/global_suppressions'
|
|
25
|
+
require_relative 'broadcast/resources/migration'
|
|
18
26
|
|
|
19
27
|
# ActionMailer integration — only loaded when Rails is present
|
|
20
28
|
if defined?(Rails::Railtie)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: broadcast-ruby
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Simon Chiu
|
|
@@ -31,30 +31,38 @@ executables: []
|
|
|
31
31
|
extensions: []
|
|
32
32
|
extra_rdoc_files: []
|
|
33
33
|
files:
|
|
34
|
-
- ".rubocop.yml"
|
|
35
34
|
- CHANGELOG.md
|
|
36
35
|
- Gemfile
|
|
37
36
|
- Gemfile.lock
|
|
38
37
|
- LICENSE.txt
|
|
39
38
|
- README.md
|
|
40
39
|
- Rakefile
|
|
40
|
+
- SDK-COVERAGE.md
|
|
41
41
|
- lib/broadcast-ruby.rb
|
|
42
42
|
- lib/broadcast.rb
|
|
43
43
|
- lib/broadcast/client.rb
|
|
44
44
|
- lib/broadcast/configuration.rb
|
|
45
|
+
- lib/broadcast/connection.rb
|
|
46
|
+
- lib/broadcast/debug_logger.rb
|
|
45
47
|
- lib/broadcast/delivery_method.rb
|
|
46
48
|
- lib/broadcast/errors.rb
|
|
47
49
|
- lib/broadcast/railtie.rb
|
|
50
|
+
- lib/broadcast/resources/autopilots.rb
|
|
48
51
|
- lib/broadcast/resources/base.rb
|
|
49
52
|
- lib/broadcast/resources/broadcasts.rb
|
|
53
|
+
- lib/broadcast/resources/discovery.rb
|
|
50
54
|
- lib/broadcast/resources/email_servers.rb
|
|
55
|
+
- lib/broadcast/resources/global_suppressions.rb
|
|
56
|
+
- lib/broadcast/resources/migration.rb
|
|
51
57
|
- lib/broadcast/resources/opt_in_forms.rb
|
|
52
58
|
- lib/broadcast/resources/segments.rb
|
|
53
59
|
- lib/broadcast/resources/sequences.rb
|
|
54
60
|
- lib/broadcast/resources/subscribers.rb
|
|
61
|
+
- lib/broadcast/resources/suppressions.rb
|
|
55
62
|
- lib/broadcast/resources/templates.rb
|
|
56
63
|
- lib/broadcast/resources/transactionals.rb
|
|
57
64
|
- lib/broadcast/resources/webhook_endpoints.rb
|
|
65
|
+
- lib/broadcast/response.rb
|
|
58
66
|
- lib/broadcast/version.rb
|
|
59
67
|
- lib/broadcast/webhook.rb
|
|
60
68
|
homepage: https://github.com/send-broadcast/broadcast-ruby
|
|
@@ -80,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
80
88
|
- !ruby/object:Gem::Version
|
|
81
89
|
version: '0'
|
|
82
90
|
requirements: []
|
|
83
|
-
rubygems_version:
|
|
91
|
+
rubygems_version: 4.0.17
|
|
84
92
|
specification_version: 4
|
|
85
93
|
summary: Ruby client for the Broadcast email platform
|
|
86
94
|
test_files: []
|
data/.rubocop.yml
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
AllCops:
|
|
2
|
-
TargetRubyVersion: 3.2
|
|
3
|
-
NewCops: enable
|
|
4
|
-
SuggestExtensions: false
|
|
5
|
-
|
|
6
|
-
Style/StringLiterals:
|
|
7
|
-
EnforcedStyle: single_quotes
|
|
8
|
-
|
|
9
|
-
Style/StringLiteralsInInterpolation:
|
|
10
|
-
EnforcedStyle: single_quotes
|
|
11
|
-
|
|
12
|
-
Style/Documentation:
|
|
13
|
-
Enabled: false
|
|
14
|
-
|
|
15
|
-
Metrics/MethodLength:
|
|
16
|
-
Max: 25
|
|
17
|
-
Exclude:
|
|
18
|
-
- test/**/*
|
|
19
|
-
|
|
20
|
-
Metrics/AbcSize:
|
|
21
|
-
Max: 35
|
|
22
|
-
Exclude:
|
|
23
|
-
- test/**/*
|
|
24
|
-
|
|
25
|
-
Metrics/ClassLength:
|
|
26
|
-
Max: 200
|
|
27
|
-
Exclude:
|
|
28
|
-
- test/**/*
|
|
29
|
-
|
|
30
|
-
Metrics/CyclomaticComplexity:
|
|
31
|
-
Max: 15
|
|
32
|
-
|
|
33
|
-
Metrics/PerceivedComplexity:
|
|
34
|
-
Max: 15
|
|
35
|
-
|
|
36
|
-
Layout/LineLength:
|
|
37
|
-
Max: 120
|
|
38
|
-
|
|
39
|
-
Naming/FileName:
|
|
40
|
-
Exclude:
|
|
41
|
-
- lib/broadcast-ruby.rb
|
|
42
|
-
|
|
43
|
-
Naming/MethodParameterName:
|
|
44
|
-
AllowedNames:
|
|
45
|
-
- a
|
|
46
|
-
- b
|
|
47
|
-
- id
|
|
48
|
-
- k
|
|
49
|
-
- v
|
|
50
|
-
- to
|