Skip to content

Commit 9111574

Browse files
authored
feat: Update readme (#26)
1 parent f1bb4bc commit 9111574

17 files changed

+738
-43
lines changed

README.md

Lines changed: 430 additions & 11 deletions
Large diffs are not rendered by default.

clippy.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
doc-valid-idents = ["EventSourcingDB", "EventQL", "CloudEvents", ".."]

examples/event_types.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
use eventsourcingdb::{client::Client, container::Container};
2+
use futures::StreamExt;
3+
4+
#[tokio::main]
5+
async fn main() {
6+
let db = Container::start_default().await.unwrap();
7+
let base_url = db.get_base_url().await.unwrap();
8+
let api_token = db.get_api_token();
9+
let client = Client::new(base_url, api_token);
10+
11+
let result = client.list_event_types().await;
12+
13+
match result {
14+
Err(err) => panic!("{}", err),
15+
Ok(mut event_types) => {
16+
while let Some(Ok(event_type)) = event_types.next().await {
17+
println!("{:?}", event_type)
18+
}
19+
}
20+
}
21+
}

examples/listing_subjects.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
use eventsourcingdb::{client::Client, container::Container};
2+
use futures::StreamExt;
3+
4+
#[tokio::main]
5+
async fn main() {
6+
let db = Container::start_default().await.unwrap();
7+
let base_url = db.get_base_url().await.unwrap();
8+
let api_token = db.get_api_token();
9+
let client = Client::new(base_url, api_token);
10+
11+
let result = client.list_subjects(Some("/")).await;
12+
13+
match result {
14+
Err(err) => panic!("{}", err),
15+
Ok(mut subjects) => {
16+
while let Some(Ok(subject)) = subjects.next().await {
17+
println!("{:?}", subject)
18+
}
19+
}
20+
}
21+
}

examples/observing_events.rs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
use eventsourcingdb::{
2+
client::{Client, request_options::ObserveEventsOptions},
3+
container::Container,
4+
};
5+
use futures::StreamExt;
6+
7+
#[tokio::main]
8+
async fn main() {
9+
let db = Container::start_default().await.unwrap();
10+
let base_url = db.get_base_url().await.unwrap();
11+
let api_token = db.get_api_token();
12+
let client = Client::new(base_url, api_token);
13+
14+
let result = client
15+
.observe_events(
16+
"/books/42",
17+
Some(ObserveEventsOptions {
18+
recursive: false,
19+
from_latest_event: None,
20+
lower_bound: None,
21+
}),
22+
)
23+
.await;
24+
25+
match result {
26+
Err(err) => panic!("{}", err),
27+
Ok(mut stream) => {
28+
while let Some(Ok(event)) = stream.next().await {
29+
println!("{:?}", event)
30+
}
31+
}
32+
}
33+
}

examples/ping.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
use eventsourcingdb::{client::Client, container::Container};
2+
3+
#[tokio::main]
4+
async fn main() {
5+
let db = Container::start_default().await.unwrap();
6+
let base_url = db.get_base_url().await.unwrap();
7+
let api_token = db.get_api_token();
8+
let client = Client::new(base_url, api_token);
9+
10+
let result = client.ping().await;
11+
if let Err(err) = result {
12+
// handle error
13+
panic!("{}", err)
14+
}
15+
}

examples/reading_events.rs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
use eventsourcingdb::{
2+
client::{Client, request_options::ReadEventsOptions},
3+
container::Container,
4+
};
5+
use futures::StreamExt;
6+
7+
#[tokio::main]
8+
async fn main() {
9+
let db = Container::start_default().await.unwrap();
10+
let base_url = db.get_base_url().await.unwrap();
11+
let api_token = db.get_api_token();
12+
let client = Client::new(base_url, api_token);
13+
14+
let result = client
15+
.read_events(
16+
"/books/42",
17+
Some(ReadEventsOptions {
18+
recursive: false,
19+
from_latest_event: None,
20+
order: None,
21+
lower_bound: None,
22+
upper_bound: None,
23+
}),
24+
)
25+
.await;
26+
27+
match result {
28+
Err(err) => panic!("{}", err),
29+
Ok(mut stream) => {
30+
while let Some(Ok(event)) = stream.next().await {
31+
println!("{:?}", event)
32+
}
33+
}
34+
}
35+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
use eventsourcingdb::{client::Client, container::Container};
2+
use serde_json::json;
3+
4+
#[tokio::main]
5+
async fn main() {
6+
let db = Container::start_default().await.unwrap();
7+
let base_url = db.get_base_url().await.unwrap();
8+
let api_token = db.get_api_token();
9+
let client = Client::new(base_url, api_token);
10+
11+
let result = client
12+
.register_event_schema(
13+
"io.eventsourcingdb.library.book-acquired",
14+
&json!({
15+
"type": "object",
16+
"properties": {
17+
"title": { "type": "string" },
18+
"author": { "type": "string" },
19+
"isbn": { "type": "string" },
20+
},
21+
"required": [
22+
"title",
23+
"author",
24+
"isbn",
25+
],
26+
"additionalProperties": false,
27+
}),
28+
)
29+
.await;
30+
31+
if let Err(err) = result {
32+
panic!("{}", err)
33+
}
34+
}

examples/running_eventql.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
use eventsourcingdb::{client::Client, container::Container};
2+
use futures::StreamExt;
3+
4+
#[tokio::main]
5+
async fn main() {
6+
let db = Container::start_default().await.unwrap();
7+
let base_url = db.get_base_url().await.unwrap();
8+
let api_token = db.get_api_token();
9+
let client = Client::new(base_url, api_token);
10+
11+
let result = client
12+
.run_eventql_query("FROM e IN events PROJECT INTO e")
13+
.await;
14+
15+
match result {
16+
Err(err) => panic!("{}", err),
17+
Ok(mut stream) => {
18+
while let Some(Ok(row)) = stream.next().await {
19+
println!("{:?}", row)
20+
}
21+
}
22+
}
23+
}

examples/verify_api_token.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
use eventsourcingdb::{client::Client, container::Container};
2+
3+
#[tokio::main]
4+
async fn main() {
5+
let db = Container::start_default().await.unwrap();
6+
let base_url = db.get_base_url().await.unwrap();
7+
let api_token = db.get_api_token();
8+
let client = Client::new(base_url, api_token);
9+
10+
let result = client.verify_api_token().await;
11+
if let Err(err) = result {
12+
// handle error
13+
panic!("{}", err)
14+
}
15+
}

0 commit comments

Comments
 (0)