Class: RailsEventStoreMongoid::EventRepository
- Inherits:
-
Object
- Object
- RailsEventStoreMongoid::EventRepository
- Defined in:
- lib/rails_event_store_mongoid/event_repository.rb
Instance Attribute Summary collapse
-
#adapter ⇒ Object
readonly
Returns the value of attribute adapter.
Instance Method Summary collapse
- #create(event, stream_name) ⇒ Object
- #delete_stream(stream_name) ⇒ Object
- #has_event?(event_id) ⇒ Boolean
-
#initialize(adapter: ::RailsEventStoreMongoid::Event) ⇒ EventRepository
constructor
A new instance of EventRepository.
- #last_stream_event(stream_name) ⇒ Object
- #read_all_streams_backward(start_event_id, count) ⇒ Object
- #read_all_streams_forward(start_event_id, count) ⇒ Object
- #read_events_backward(stream_name, start_event_id, count) ⇒ Object
- #read_events_forward(stream_name, start_event_id, count) ⇒ Object
- #read_stream_events_backward(stream_name) ⇒ Object
- #read_stream_events_forward(stream_name) ⇒ Object
Constructor Details
#initialize(adapter: ::RailsEventStoreMongoid::Event) ⇒ EventRepository
Returns a new instance of EventRepository.
4 5 6 |
# File 'lib/rails_event_store_mongoid/event_repository.rb', line 4 def initialize(adapter: ::RailsEventStoreMongoid::Event) @adapter = adapter end |
Instance Attribute Details
#adapter ⇒ Object (readonly)
Returns the value of attribute adapter.
7 8 9 |
# File 'lib/rails_event_store_mongoid/event_repository.rb', line 7 def adapter @adapter end |
Instance Method Details
#create(event, stream_name) ⇒ Object
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/rails_event_store_mongoid/event_repository.rb', line 9 def create(event, stream_name) adapter.create( stream: stream_name, event_id: event.event_id, event_type: event.class, data: event.data, meta: event., ) event end |
#delete_stream(stream_name) ⇒ Object
20 21 22 23 |
# File 'lib/rails_event_store_mongoid/event_repository.rb', line 20 def delete_stream(stream_name) condition = {stream: stream_name} adapter.destroy_all condition end |
#has_event?(event_id) ⇒ Boolean
25 26 27 |
# File 'lib/rails_event_store_mongoid/event_repository.rb', line 25 def has_event?(event_id) adapter.where(event_id: event_id).exists? end |
#last_stream_event(stream_name) ⇒ Object
29 30 31 |
# File 'lib/rails_event_store_mongoid/event_repository.rb', line 29 def last_stream_event(stream_name) build_event_entity(adapter.where(stream: stream_name).desc(:ts).first) end |
#read_all_streams_backward(start_event_id, count) ⇒ Object
76 77 78 79 80 81 82 83 84 85 |
# File 'lib/rails_event_store_mongoid/event_repository.rb', line 76 def read_all_streams_backward(start_event_id, count) stream = adapter unless start_event_id.equal?(:head) starting_event = adapter.find_by(event_id: start_event_id) stream = stream.where(:ts.lt => starting_event.ts) end stream.desc(:ts).limit(count) .map(&method(:build_event_entity)) end |
#read_all_streams_forward(start_event_id, count) ⇒ Object
65 66 67 68 69 70 71 72 73 74 |
# File 'lib/rails_event_store_mongoid/event_repository.rb', line 65 def read_all_streams_forward(start_event_id, count) stream = adapter unless start_event_id.equal?(:head) starting_event = adapter.find_by(event_id: start_event_id) stream = stream.where(:ts.gt => starting_event.ts) end stream.asc(:ts).limit(count) .map(&method(:build_event_entity)) end |
#read_events_backward(stream_name, start_event_id, count) ⇒ Object
44 45 46 47 48 49 50 51 52 53 |
# File 'lib/rails_event_store_mongoid/event_repository.rb', line 44 def read_events_backward(stream_name, start_event_id, count) stream = adapter.where(stream: stream_name) unless start_event_id.equal?(:head) starting_event = adapter.find_by(event_id: start_event_id) stream = stream.where(:ts.lt => starting_event.ts) end stream.desc(:ts).limit(count) .map(&method(:build_event_entity)) end |
#read_events_forward(stream_name, start_event_id, count) ⇒ Object
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/rails_event_store_mongoid/event_repository.rb', line 33 def read_events_forward(stream_name, start_event_id, count) stream = adapter.where(stream: stream_name) unless start_event_id.equal?(:head) starting_event = adapter.find_by(event_id: start_event_id) stream = stream.where(:ts.gt => starting_event.ts) end stream.asc(:ts).limit(count) .map(&method(:build_event_entity)) end |
#read_stream_events_backward(stream_name) ⇒ Object
60 61 62 63 |
# File 'lib/rails_event_store_mongoid/event_repository.rb', line 60 def read_stream_events_backward(stream_name) adapter.where(stream: stream_name).desc(:ts) .map(&method(:build_event_entity)) end |
#read_stream_events_forward(stream_name) ⇒ Object
55 56 57 58 |
# File 'lib/rails_event_store_mongoid/event_repository.rb', line 55 def read_stream_events_forward(stream_name) adapter.where(stream: stream_name).asc(:ts) .map(&method(:build_event_entity)) end |