cyclone_lariat 1.0.0.rc7 → 1.0.0.rc8

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
  SHA1:
3
- metadata.gz: 7afb038eabdc4d8fc408ea9b784a21675bf90315
4
- data.tar.gz: 0c05923296deb2c4c1d4168dc451b961c9969d62
3
+ metadata.gz: 0e810d6b4fc64e4938dfe70579f2bf36a4768bdf
4
+ data.tar.gz: 8e8daf9a77166655600b6baccf671276d3c9566f
5
5
  SHA512:
6
- metadata.gz: cc1fcf280dc9488a5f12a1dcfd0e45101217ea538c76b846b0cc2df35c4eff662581fde68298b1131031643f761842ea2102687d997c7259bbecfe43cd091d7f
7
- data.tar.gz: 1279f8a724f53f36f68b86c3de16ca32f51f799e02f1a66b1a716428f81ccb7f603fcf66a76159e67eb74d1a22a8d9d41be21d62005b5473b622773904ea9399
6
+ metadata.gz: 908053b867c1a268b7659e2ee37c8a7f65781f1d80b8dc5c2f3e2b4106f394f0956da67fdb7bc93f676f7fcb6f0d88dc3e6f89496db47f40991b5ea1226b0da6
7
+ data.tar.gz: 1d46de69c81d15fc14ee015177047a551e99deecde4d17c59a8c357b5773eab18a26a1faf0ce88898c5b644113e4d1819f680c2cb9fa185d6685a6acdea0654a
data/CHANGELOG.md CHANGED
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [1.0.0.rc8]
8
+ Changed
9
+ - Added `before_save` hook to middleware
10
+
7
11
  ## [1.0.0.rc7]
8
12
  Changed
9
13
  - Fixed `CycloneLariat::Messages::Builder`
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cyclone_lariat (1.0.0.rc7)
4
+ cyclone_lariat (1.0.0.rc8)
5
5
  aws-sdk-sns
6
6
  aws-sdk-sqs
7
7
  dry-cli (~> 0.6)
data/README.md CHANGED
@@ -786,7 +786,8 @@ class Receiver
786
786
  chain.add CycloneLariat::Middleware,
787
787
  dataset: DB[:events],
788
788
  errors_notifier: LunaPark::Notifiers::Sentry.new,
789
- message_notifier: LunaPark::Notifiers::Log.new(min_lvl: :debug, format: :pretty_json)
789
+ message_notifier: LunaPark::Notifiers::Log.new(min_lvl: :debug, format: :pretty_json),
790
+ before_save: -> { |message| message.data[:password] = nil }
790
791
  end
791
792
 
792
793
  class UserIsNotRegistered < LunaPark::Errors::Business
@@ -10,11 +10,12 @@ module CycloneLariat
10
10
  class Middleware
11
11
  attr_reader :config
12
12
 
13
- def initialize(errors_notifier: nil, message_notifier: nil, repo: Repo::InboxMessages, **options)
13
+ def initialize(errors_notifier: nil, message_notifier: nil, before_save: nil, repo: Repo::InboxMessages, **options)
14
14
  @config = CycloneLariat::Options.wrap(options).merge!(CycloneLariat.config)
15
15
  @events_repo = repo.new(**@config.to_h)
16
16
  @message_notifier = message_notifier
17
17
  @errors_notifier = errors_notifier
18
+ @before_save = before_save
18
19
  end
19
20
 
20
21
  def call(_worker_instance, queue, _sqs_msg, body, &block)
@@ -34,7 +35,7 @@ module CycloneLariat
34
35
 
35
36
  private
36
37
 
37
- attr_reader :errors_notifier, :message_notifier, :events_repo
38
+ attr_reader :errors_notifier, :message_notifier, :events_repo, :before_save
38
39
 
39
40
  def receive_message!(body)
40
41
  body[:Message] ? JSON.parse(body[:Message], symbolize_names: true) : body
@@ -48,10 +49,16 @@ module CycloneLariat
48
49
 
49
50
  existed = events_repo.find(uuid: event.uuid)
50
51
  return true if existed&.processed?
52
+ return yield if existed
53
+
54
+ event.clone.tap do |e|
55
+ before_save.call(e) if before_save
56
+ events_repo.create(e)
57
+ end
51
58
 
52
- events_repo.create(event) unless existed
53
59
  yield
54
- events_repo.processed! uuid: event.uuid, error: event.client_error
60
+
61
+ events_repo.processed!(uuid: event.uuid, error: event.client_error)
55
62
  end
56
63
 
57
64
  def catch_business_error(event)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CycloneLariat
4
- VERSION = '1.0.0.rc7'
4
+ VERSION = '1.0.0.rc8'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cyclone_lariat
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc7
4
+ version: 1.0.0.rc8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Kudrin
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2023-05-09 00:00:00.000000000 Z
14
+ date: 2023-05-31 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: aws-sdk-sns