-
-
Save ddamko/6d3d6c214ea8ba0ff060 to your computer and use it in GitHub Desktop.
iex(1)> event = [%{"eventId" => "fbf4a1a1-b4a3-4dfe-a01f-ec52c34e16e4", "eventType" => "event-type", "data" => %{"a" => "1"}}] | |
[%{"data" => %{"a" => "1"}, "eventId" => "fbf4a1a1-b4a3-4dfe-a01f-ec52c34e16e4", | |
"eventType" => "event-type"}] | |
iex(2)> {:ok, json_event} = JSX.encode event | |
{:ok, | |
"[{\"data\":{\"a\":\"1\"},\"eventId\":\"fbf4a1a1-b4a3-4dfe-a01f-ec52c34e16e4\",\"eventType\":\"event-type\"}]"} | |
iex(3)> {:ok, post} = HTTPoison.request(:post, "http://127.0.0.1:2113/streams/newstream", json_event, [{"Content-Type", "vnd.eventstore.events+json"}]) | |
{:ok, | |
%HTTPoison.Response{body: "", | |
headers: %{"Access-Control-Allow-Headers" => "Content-Type, X-Requested-With, X-PINGOTHER, Authorization, ES-LongPoll, ES-ExpectedVersion, ES-EventId, ES-EventType, ES-RequiresMaster, ES-HardDelete, ES-ResolveLinkTo, ES-ExpectedVersion", | |
"Access-Control-Allow-Methods" => "", "Access-Control-Allow-Origin" => "*", | |
"Access-Control-Expose-Headers" => "Location, ES-Position", | |
"Connection" => "close", "Content-Length" => "0", "Content-Type" => "", | |
"Date" => "Thu, 02 Apr 2015 15:33:39 GMT", "Server" => "Mono-HTTPAPI/1.0"}, | |
status_code: 500}} | |
EventStore Message: Unhandled exception while processing http request at [http://127.0.0.1:2113/, http://localhost:2113/]. | |
componentText | |
## FIX ## | |
defmodule EventStore do | |
def store_event(stream, event_type, event_data) do | |
{:ok, data} = JSX.encode event_data | |
HTTPoison.request(:post, "http://localhost:2113/streams/#{stream}", data, [{"Content-Type","application/json"},{"ES-EventType",event_type},{"ES-EventId",UUID.uuid1}]) | |
end | |
end |
oh now it does it was 404'ing.
-
what else is in the log .... e.g. around that.
-
You should be able to reproduce this in curl rather trivially?
I was able to solve my issue by posting the EventType and EventId in the headers rather then in the JSON data.
then you should change your content type to application/json
http://docs.geteventstore.com/http-api/3.1.0-pre/writing-to-a-stream/
btw your content type should be application/vnd.eventstore.events+json in your original example ...
Ah yes it should. Thanks. I am going to be working this into a CQRS example I am playing with in Elixir. https://github.com/ddamko/elixir_cqrs_es
I do continually get this error after running ./run-node.sh on my linux machine
Error while reading drive info for path /tmp/EventStore/2015-04-02_21.50.30.673538-Node2113. Message: The drive name does not exist
Parameter name: driveName.
trying to leave comments doesn't work!