pub struct DataClient {
pub http: Client,
pub api_key: String,
pub host: String,
}Expand description
The data client is used to access an app’s data storage capabilities.
Fields§
§http: ClientThe HTTP client associated with this client.
api_key: StringThe app’s API key. You can retrieve this from the web dashboard.
host: StringThe origin of the Tetratto server. When creating with DataClient::new,
you can provide None to use https://tetratto.com.
Implementations§
Source§impl DataClient
impl DataClient
Sourcepub fn new(host: Option<String>, api_key: String) -> Self
pub fn new(host: Option<String>, api_key: String) -> Self
Create a new DataClient.
Examples found in repository?
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 // record insert
19 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 // testing record query then delete
27 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}Sourcepub async fn get_app(&self) -> Result<ThirdPartyApp>
pub async fn get_app(&self) -> Result<ThirdPartyApp>
Get the current app using the provided API key.
§Usage
let client = DataClient::new("https://tetratto.com".to_string(), "...".to_string());
let app = client.get_app().await.expect("failed to get app");Examples found in repository?
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 // record insert
19 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 // testing record query then delete
27 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}Sourcepub async fn check_ip(&self, ip: &str) -> Result<bool>
pub async fn check_ip(&self, ip: &str) -> Result<bool>
Check if the given IP is IP banned from the Tetratto host. You will only know if the IP is banned or not, meaning you will not be shown the reason if it is banned.
Sourcepub async fn query(&self, query: &SimplifiedQuery) -> Result<AppDataQueryResult>
pub async fn query(&self, query: &SimplifiedQuery) -> Result<AppDataQueryResult>
Query the app’s data.
Examples found in repository?
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 // record insert
19 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 // testing record query then delete
27 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}Sourcepub async fn insert(&self, key: String, value: String) -> Result<String>
pub async fn insert(&self, key: String, value: String) -> Result<String>
Insert a key, value pair into the app’s data.
Examples found in repository?
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 // record insert
19 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 // testing record query then delete
27 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}Sourcepub async fn update(&self, id: usize, value: String) -> Result<()>
pub async fn update(&self, id: usize, value: String) -> Result<()>
Update a record’s value given its ID and the new value.
Examples found in repository?
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 // record insert
19 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 // testing record query then delete
27 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}Sourcepub async fn rename(&self, id: usize, key: String) -> Result<()>
pub async fn rename(&self, id: usize, key: String) -> Result<()>
Update a record’s key given its ID and the new key.
Sourcepub async fn remove(&self, id: usize) -> Result<()>
pub async fn remove(&self, id: usize) -> Result<()>
Delete a row from the app’s data by its id.
Examples found in repository?
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 // record insert
19 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 // testing record query then delete
27 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}Sourcepub async fn remove_query(&self, query: &AppDataQuery) -> Result<()>
pub async fn remove_query(&self, query: &AppDataQuery) -> Result<()>
Delete row(s) from the app’s data by a query.
Trait Implementations§
Source§impl Clone for DataClient
impl Clone for DataClient
Source§fn clone(&self) -> DataClient
fn clone(&self) -> DataClient
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for DataClient
impl !UnwindSafe for DataClient
impl Freeze for DataClient
impl Send for DataClient
impl Sync for DataClient
impl Unpin for DataClient
impl UnsafeUnpin for DataClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more