Class: HttpEventstore::Actions::AppendEventToStream
- Inherits:
-
Object
- Object
- HttpEventstore::Actions::AppendEventToStream
- Defined in:
- lib/http_eventstore/actions/append_event_to_stream.rb
Instance Method Summary collapse
- #call(stream_name, event_data, expected_version = nil) ⇒ Object
-
#initialize(client) ⇒ AppendEventToStream
constructor
A new instance of AppendEventToStream.
Constructor Details
#initialize(client) ⇒ AppendEventToStream
Returns a new instance of AppendEventToStream.
5 6 7 |
# File 'lib/http_eventstore/actions/append_event_to_stream.rb', line 5 def initialize(client) @client = client end |
Instance Method Details
#call(stream_name, event_data, expected_version = nil) ⇒ Object
9 10 11 12 13 14 15 16 17 |
# File 'lib/http_eventstore/actions/append_event_to_stream.rb', line 9 def call(stream_name, event_data, expected_version = nil) event_data = OpenStruct.new(event_data) if event_data.is_a?(Hash) event = create_event(event_data) raise IncorrectStreamData if event.validate || stream_name_incorrect?(stream_name) create_event_in_es(stream_name, event, expected_version) rescue ClientError => e raise WrongExpectedEventNumber if e.code == 400 raise StreamAlreadyDeleted if e.code == 410 end |