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.
@@ -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.2.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: 3.7.2
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