Skip to content

Commit

Permalink
Transactional changes
Browse files Browse the repository at this point in the history
  • Loading branch information
mostlyobvious committed Nov 20, 2023
1 parent a077746 commit e416232
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 6 deletions.
18 changes: 13 additions & 5 deletions examples/rails_way/lib/project_management/command_handler.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,25 @@ def resolve(cmd)

private

def stream_name(id) = "Issue$#{id}"

def in_transaction(&) = ActiveRecord::Base.transaction(&)

def create_issue(id)
Issue.create!(uuid: id)
@event_store.publish(yield, stream_name: "Issue$#{id}")
in_transaction do
Issue.create!(uuid: id)
@event_store.publish(yield, stream_name: stream_name(id))
end
rescue ActiveRecord::RecordNotUnique
raise Error
end

def load_issue(id)
issue = Issue.find_by!(uuid: id)
@event_store.publish(yield(issue), stream_name: "Issue$#{id}")
issue.save!
in_transaction do
issue = Issue.find_by!(uuid: id)
@event_store.publish(yield(issue), stream_name: stream_name(id))
issue.save!
end
rescue AASM::InvalidTransition, ActiveRecord::RecordNotFound
raise Error
end
Expand Down
5 changes: 4 additions & 1 deletion examples/rails_way/test/issue_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@ def test_passed_expected_version
end

def setup
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:")
ActiveRecord::Base.establish_connection(
adapter: "sqlite3",
database: ":memory:"
)

ActiveRecord::Schema.verbose = false
ActiveRecord::Schema.define do
Expand Down

0 comments on commit e416232

Please sign in to comment.