emailbutler 0.5.6 → 0.5.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83bd2cbfef3169592a190131ff09124cee494f26f81f96f6a93e04138e4d3439
4
- data.tar.gz: 75be821dde3a84855c1aa8407a4946c82bbf736e6d92aad7451ac22abce8e385
3
+ metadata.gz: 7fbec5fbe393584e210acf55f844191eef00fe3e4fff85bfac613553768ca59e
4
+ data.tar.gz: f7d18a4205c146435eaf1c3bef7fbc9fad9aee7c56777f503714ea6ae7a7401e
5
5
  SHA512:
6
- metadata.gz: 0bc138bd2a1bdac58cb71cfc6d805bc5c58d8c0f6dda7ca65be307f6849f53d53b8d00ea1576556a54c2a53dea3896f61ac8836e81dc061ecc3fef920cc2f9b7
7
- data.tar.gz: 80fe2b4f28eb5952fd67db7ac7a16485a29cd314c654cbbad0e1bc9b0659bc1f687dff5e35bd8e57289468ce7a8619fcc1a58996ac200614ee96337fdefa87da
6
+ metadata.gz: b7b1a5256a1e258e8223a352026570f6ef29c4fbb268d921e63733264e2705a82237845f86413b8d4fbf157421b6e8633f881f565a13ce491e9a57f170f11e3e
7
+ data.tar.gz: c083e3b6b964bb7e847c8cd8cfb059cac3c538a7f2fff41ff26896bd42667bc89877507caf2cda58ee9dd6757d76e37e5d389c35c6de098b621822f0bda1cf72
@@ -16,7 +16,7 @@ module Emailbutler
16
16
  private
17
17
 
18
18
  def receiver_params
19
- params.permit('_json' => %w[smtp-id event])
19
+ params.permit('_json' => %w[smtp-id event timestamp])
20
20
  end
21
21
  end
22
22
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Emailbutler
4
- VERSION = '0.5.6'
4
+ VERSION = '0.5.8'
5
5
  end
@@ -7,9 +7,12 @@ module Emailbutler
7
7
  DELIVERABILITY_MAPPER = {
8
8
  'processed' => 'processed',
9
9
  'delivered' => 'delivered',
10
+ 'open' => 'delivered',
11
+ 'click' => 'delivered',
10
12
  'deferred' => 'failed',
11
13
  'bounce' => 'failed',
12
- 'dropped' => 'failed'
14
+ 'dropped' => 'failed',
15
+ 'spamreport' => 'failed'
13
16
  }.freeze
14
17
 
15
18
  def self.call(...)
@@ -18,14 +21,15 @@ module Emailbutler
18
21
 
19
22
  def call(payload:)
20
23
  payload['_json'].filter_map { |message|
21
- message_uuid = message['smtp-id']
24
+ message.stringify_keys!
25
+ message_uuid = message['smtp-id'] || message['sg_message_id']
22
26
  status = DELIVERABILITY_MAPPER[message['event']]
23
- next unless message_uuid || status
27
+ next if message_uuid.nil? || status.nil?
24
28
 
25
29
  {
26
30
  message_uuid: message_uuid,
27
31
  status: status,
28
- timestamp: Time.at(message['timestamp']).utc.to_datetime
32
+ timestamp: message['timestamp'] ? Time.at(message['timestamp']).utc.to_datetime : nil
29
33
  }
30
34
  }
31
35
  end
@@ -16,6 +16,8 @@ module Emailbutler
16
16
  .call(payload: payload)
17
17
  .each { |event|
18
18
  message = Emailbutler.find_message_by(uuid: event.delete(:message_uuid))
19
+ next unless message
20
+
19
21
  Emailbutler.update_message(message, event)
20
22
  }
21
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emailbutler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bogdanov Anton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-15 00:00:00.000000000 Z
11
+ date: 2023-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pagy