Documentation
¶
Overview ¶
Example (GetAllEvents) ¶
// Given
shortuuid.SetRand(100)
inMemoryStore := inmemorystore.New(
inmemorystore.WithClock(sequentialclock.New()),
)
api := rangedbapi.New(rangedbapi.WithStore(inMemoryStore))
server := httptest.NewServer(api)
defer server.Close()
PrintError(
inMemoryStore.Save(rangedbtest.ThingWasDone{ID: "605f20348fb940e386c171d51c877bf1", Number: 100}, nil),
inMemoryStore.Save(rangedbtest.AnotherWasComplete{ID: "a095086e52bc4617a1763a62398cd645"}, nil),
)
url := fmt.Sprintf("%s/events.json", server.URL)
// When
response, err := http.Get(url)
PrintError(err)
defer Close(response.Body)
body, err := ioutil.ReadAll(response.Body)
PrintError(err)
fmt.Println(jsontools.PrettyJSON(body))
Output: [ { "aggregateType": "thing", "aggregateID": "605f20348fb940e386c171d51c877bf1", "globalSequenceNumber": 0, "sequenceNumber": 0, "insertTimestamp": 0, "eventID": "d2ba8e70072943388203c438d4e94bf3", "eventType": "ThingWasDone", "data": { "id": "605f20348fb940e386c171d51c877bf1", "number": 100 }, "metadata": null }, { "aggregateType": "another", "aggregateID": "a095086e52bc4617a1763a62398cd645", "globalSequenceNumber": 1, "sequenceNumber": 0, "insertTimestamp": 1, "eventID": "99cbd88bbcaf482ba1cc96ed12541707", "eventType": "AnotherWasComplete", "data": { "id": "a095086e52bc4617a1763a62398cd645" }, "metadata": null } ]
Example (GetEventsByAggregateType) ¶
// Given
shortuuid.SetRand(100)
inMemoryStore := inmemorystore.New(
inmemorystore.WithClock(sequentialclock.New()),
)
api := rangedbapi.New(rangedbapi.WithStore(inMemoryStore))
server := httptest.NewServer(api)
defer server.Close()
PrintError(
inMemoryStore.Save(rangedbtest.ThingWasDone{ID: "605f20348fb940e386c171d51c877bf1", Number: 100}, nil),
inMemoryStore.Save(rangedbtest.AnotherWasComplete{ID: "a095086e52bc4617a1763a62398cd645"}, nil),
)
url := fmt.Sprintf("%s/events/thing.json", server.URL)
// When
response, err := http.Get(url)
PrintError(err)
defer Close(response.Body)
body, err := ioutil.ReadAll(response.Body)
PrintError(err)
fmt.Println(jsontools.PrettyJSON(body))
Output: [ { "aggregateType": "thing", "aggregateID": "605f20348fb940e386c171d51c877bf1", "globalSequenceNumber": 0, "sequenceNumber": 0, "insertTimestamp": 0, "eventID": "d2ba8e70072943388203c438d4e94bf3", "eventType": "ThingWasDone", "data": { "id": "605f20348fb940e386c171d51c877bf1", "number": 100 }, "metadata": null } ]
Example (GetEventsByAggregateTypes) ¶
// Given
shortuuid.SetRand(100)
inMemoryStore := inmemorystore.New(
inmemorystore.WithClock(sequentialclock.New()),
)
api := rangedbapi.New(rangedbapi.WithStore(inMemoryStore))
server := httptest.NewServer(api)
defer server.Close()
PrintError(
inMemoryStore.Save(rangedbtest.ThingWasDone{ID: "605f20348fb940e386c171d51c877bf1", Number: 100}, nil),
inMemoryStore.Save(rangedbtest.AnotherWasComplete{ID: "a095086e52bc4617a1763a62398cd645"}, nil),
)
url := fmt.Sprintf("%s/events/thing,another.json", server.URL)
// When
response, err := http.Get(url)
PrintError(err)
defer Close(response.Body)
body, err := ioutil.ReadAll(response.Body)
PrintError(err)
fmt.Println(jsontools.PrettyJSON(body))
Output: [ { "aggregateType": "thing", "aggregateID": "605f20348fb940e386c171d51c877bf1", "globalSequenceNumber": 0, "sequenceNumber": 0, "insertTimestamp": 0, "eventID": "d2ba8e70072943388203c438d4e94bf3", "eventType": "ThingWasDone", "data": { "id": "605f20348fb940e386c171d51c877bf1", "number": 100 }, "metadata": null }, { "aggregateType": "another", "aggregateID": "a095086e52bc4617a1763a62398cd645", "globalSequenceNumber": 1, "sequenceNumber": 0, "insertTimestamp": 1, "eventID": "99cbd88bbcaf482ba1cc96ed12541707", "eventType": "AnotherWasComplete", "data": { "id": "a095086e52bc4617a1763a62398cd645" }, "metadata": null } ]
Example (GetEventsByStream) ¶
// Given
shortuuid.SetRand(100)
inMemoryStore := inmemorystore.New(
inmemorystore.WithClock(sequentialclock.New()),
)
api := rangedbapi.New(rangedbapi.WithStore(inMemoryStore))
server := httptest.NewServer(api)
defer server.Close()
PrintError(
inMemoryStore.Save(rangedbtest.ThingWasDone{ID: "605f20348fb940e386c171d51c877bf1", Number: 100}, nil),
inMemoryStore.Save(rangedbtest.ThingWasDone{ID: "605f20348fb940e386c171d51c877bf1", Number: 200}, nil),
inMemoryStore.Save(rangedbtest.AnotherWasComplete{ID: "a095086e52bc4617a1763a62398cd645"}, nil),
)
url := fmt.Sprintf("%s/events/thing/605f20348fb940e386c171d51c877bf1.json", server.URL)
// When
response, err := http.Get(url)
PrintError(err)
defer Close(response.Body)
body, err := ioutil.ReadAll(response.Body)
PrintError(err)
fmt.Println(jsontools.PrettyJSON(body))
Output: [ { "aggregateType": "thing", "aggregateID": "605f20348fb940e386c171d51c877bf1", "globalSequenceNumber": 0, "sequenceNumber": 0, "insertTimestamp": 0, "eventID": "d2ba8e70072943388203c438d4e94bf3", "eventType": "ThingWasDone", "data": { "id": "605f20348fb940e386c171d51c877bf1", "number": 100 }, "metadata": null }, { "aggregateType": "thing", "aggregateID": "605f20348fb940e386c171d51c877bf1", "globalSequenceNumber": 1, "sequenceNumber": 1, "insertTimestamp": 1, "eventID": "99cbd88bbcaf482ba1cc96ed12541707", "eventType": "ThingWasDone", "data": { "id": "605f20348fb940e386c171d51c877bf1", "number": 200 }, "metadata": null } ]
Example (GetEventsByStreamNdJson) ¶
// Given
shortuuid.SetRand(100)
inMemoryStore := inmemorystore.New(
inmemorystore.WithClock(sequentialclock.New()),
)
api := rangedbapi.New(rangedbapi.WithStore(inMemoryStore))
server := httptest.NewServer(api)
defer server.Close()
PrintError(
inMemoryStore.Save(rangedbtest.ThingWasDone{ID: "605f20348fb940e386c171d51c877bf1", Number: 100}, nil),
inMemoryStore.Save(rangedbtest.ThingWasDone{ID: "605f20348fb940e386c171d51c877bf1", Number: 200}, nil),
inMemoryStore.Save(rangedbtest.AnotherWasComplete{ID: "a095086e52bc4617a1763a62398cd645"}, nil),
)
url := fmt.Sprintf("%s/events/thing/605f20348fb940e386c171d51c877bf1.ndjson", server.URL)
// When
response, err := http.Get(url)
PrintError(err)
defer Close(response.Body)
body, err := ioutil.ReadAll(response.Body)
PrintError(err)
fmt.Println(string(body))
Output: {"aggregateType":"thing","aggregateID":"605f20348fb940e386c171d51c877bf1","globalSequenceNumber":0,"sequenceNumber":0,"insertTimestamp":0,"eventID":"d2ba8e70072943388203c438d4e94bf3","eventType":"ThingWasDone","data":{"id":"605f20348fb940e386c171d51c877bf1","number":100},"metadata":null} {"aggregateType":"thing","aggregateID":"605f20348fb940e386c171d51c877bf1","globalSequenceNumber":1,"sequenceNumber":1,"insertTimestamp":1,"eventID":"99cbd88bbcaf482ba1cc96ed12541707","eventType":"ThingWasDone","data":{"id":"605f20348fb940e386c171d51c877bf1","number":200},"metadata":null}
Example (SaveEvent) ¶
// Given
inMemoryStore := inmemorystore.New(
inmemorystore.WithClock(sequentialclock.New()),
)
api := rangedbapi.New(rangedbapi.WithStore(inMemoryStore))
server := httptest.NewServer(api)
defer server.Close()
const requestBody = `[
{
"eventID": "2b1bb91150db464a8723cae30def7996",
"eventType": "ThingWasDone",
"data":{
"id": "141b39d2b9854f8093ef79dc47dae6af",
"number": 100
},
"metadata":null
},
{
"eventID": "c8df652d85f2419e83ad6ef3afa49b08",
"eventType": "ThingWasDone",
"data":{
"id": "141b39d2b9854f8093ef79dc47dae6af",
"number": 200
},
"metadata":null
}
]`
url := fmt.Sprintf("%s/save-events/thing/141b39d2b9854f8093ef79dc47dae6af", server.URL)
// When
response, err := http.Post(url, "application/json", strings.NewReader(requestBody))
PrintError(err)
defer Close(response.Body)
body, err := ioutil.ReadAll(response.Body)
PrintError(err)
fmt.Println(string(body))
Output: {"status":"OK"}
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Option ¶
type Option func(*api)
Option defines functional option parameters for api.
func WithBaseUri ¶
WithBaseUri is a functional option to inject the base URI for use in API links.
Click to show internal directories.
Click to hide internal directories.