1use crate::*;
2
3pub async fn get(client: &Client) -> Result<serde_json::Map<String, serde_json::Value>> {
4 let result: serde_json::Value = client.fetch("/vars", NO_QUERY).await?;
5 result
6 .as_object()
7 .cloned()
8 .ok_or_else(|| Error::value(result))
9}
10
11pub async fn get_named(
12 client: &Client,
13 keys: &[&str],
14) -> Result<serde_json::Map<String, serde_json::Value>> {
15 let param = keys.join(",");
16 let result: serde_json::Value = client.fetch("/vars", &[("keys", param)]).await?;
17 result
18 .as_object()
19 .cloned()
20 .ok_or_else(|| Error::value(result))
21}
22
23#[cfg(test)]
24mod test {
25 use super::*;
26 use tokio::test;
27
28 #[test]
29 async fn named() {
30 let client = get_test_client();
31 let vars = vars::get_named(&client, &["txn_fees"])
32 .await
33 .expect("named vars");
34 assert_eq!(
35 true,
36 vars.get("txn_fees")
37 .expect("txn_fees")
38 .as_bool()
39 .expect("bool")
40 );
41 }
42}