66 lines
1.9 KiB
Rust
66 lines
1.9 KiB
Rust
|
extern crate tetratto_core;
|
||
|
use tetratto_core::{
|
||
|
model::apps::{AppDataSelectMode, AppDataSelectQuery, AppDataQueryResult},
|
||
|
sdk::{DataClient, SimplifiedQuery},
|
||
|
};
|
||
|
use std::env::var;
|
||
|
|
||
|
// mirror of https://trisua.com/t/tetratto/src/branch/master/example/app_sdk_test.js ... but in rust
|
||
|
#[tokio::main]
|
||
|
pub async fn main() {
|
||
|
let client = DataClient::new(
|
||
|
Some("http://localhost:4118".to_string()),
|
||
|
var("APP_API_KEY").unwrap(),
|
||
|
);
|
||
|
|
||
|
println!("data used: {}", client.get_app().await.unwrap().data_used);
|
||
|
|
||
|
// record insert
|
||
|
client
|
||
|
.insert("rust_test".to_string(), "Hello, world!".to_string())
|
||
|
.await
|
||
|
.unwrap();
|
||
|
println!("record created");
|
||
|
println!("data used: {}", client.get_app().await.unwrap().data_used);
|
||
|
|
||
|
// testing record query then delete
|
||
|
let record = match client
|
||
|
.query(&SimplifiedQuery {
|
||
|
query: AppDataSelectQuery::KeyIs("rust_test".to_string()),
|
||
|
mode: AppDataSelectMode::One(0),
|
||
|
})
|
||
|
.await
|
||
|
.unwrap()
|
||
|
{
|
||
|
AppDataQueryResult::One(x) => x,
|
||
|
AppDataQueryResult::Many(_) => unreachable!(),
|
||
|
};
|
||
|
|
||
|
println!("{:?}", record);
|
||
|
|
||
|
client
|
||
|
.update(record.id, "Hello, world! 1".to_string())
|
||
|
.await
|
||
|
.unwrap();
|
||
|
println!("record updated");
|
||
|
println!("data used: {}", client.get_app().await.unwrap().data_used);
|
||
|
|
||
|
let record = match client
|
||
|
.query(&SimplifiedQuery {
|
||
|
query: AppDataSelectQuery::KeyIs("rust_test".to_string()),
|
||
|
mode: AppDataSelectMode::One(0),
|
||
|
})
|
||
|
.await
|
||
|
.unwrap()
|
||
|
{
|
||
|
AppDataQueryResult::One(x) => x,
|
||
|
AppDataQueryResult::Many(_) => unreachable!(),
|
||
|
};
|
||
|
|
||
|
println!("{:?}", record);
|
||
|
|
||
|
client.remove(record.id).await.unwrap();
|
||
|
println!("record deleted");
|
||
|
println!("data used: {}", client.get_app().await.unwrap().data_used);
|
||
|
}
|