1extern crate tetratto_core;
2use tetratto_core::{
3 model::apps::{AppDataSelectMode, AppDataSelectQuery, AppDataQueryResult},
4 sdk::{DataClient, SimplifiedQuery},
5};
6use std::env::var;
7
8#[tokio::main]
10pub async fn main() {
11 let client = DataClient::new(
12 Some("http://localhost:4118".to_string()),
13 var("APP_API_KEY").unwrap(),
14 );
15
16 println!("data used: {}", client.get_app().await.unwrap().data_used);
17
18 client
20 .insert("rust_test".to_string(), "Hello, world!".to_string())
21 .await
22 .unwrap();
23 println!("record created");
24 println!("data used: {}", client.get_app().await.unwrap().data_used);
25
26 let record = match client
28 .query(&SimplifiedQuery {
29 query: AppDataSelectQuery::KeyIs("rust_test".to_string()),
30 mode: AppDataSelectMode::One(0),
31 cache: false,
32 })
33 .await
34 .unwrap()
35 {
36 AppDataQueryResult::One(x) => x,
37 AppDataQueryResult::Many(_) => unreachable!(),
38 };
39
40 println!("{:?}", record);
41
42 client
43 .update(record.id, "Hello, world! 1".to_string())
44 .await
45 .unwrap();
46 println!("record updated");
47 println!("data used: {}", client.get_app().await.unwrap().data_used);
48
49 let record = match client
50 .query(&SimplifiedQuery {
51 query: AppDataSelectQuery::KeyIs("rust_test".to_string()),
52 mode: AppDataSelectMode::One(0),
53 cache: false,
54 })
55 .await
56 .unwrap()
57 {
58 AppDataQueryResult::One(x) => x,
59 AppDataQueryResult::Many(_) => unreachable!(),
60 };
61
62 println!("{:?}", record);
63
64 client.remove(record.id).await.unwrap();
65 println!("record deleted");
66 println!("data used: {}", client.get_app().await.unwrap().data_used);
67}