emailbutler 0.5.6 → 0.5.8

Sign up to get free protection for your applications and to get access to all the features.
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