lisk_api_rust_client/api/
mod.rs

1pub mod accounts;
2pub mod blocks;
3pub mod dapps;
4pub mod delegates;
5pub mod models;
6pub mod node;
7pub mod peers;
8pub mod transactions;
9pub mod voters;
10pub mod votes;
11
12use self::accounts::Accounts;
13use self::blocks::Blocks;
14use self::dapps::Dapps;
15use self::delegates::Delegates;
16use self::models::Response;
17use self::node::Node;
18use self::peers::Peers;
19use self::transactions::Transactions;
20use self::voters::Voters;
21use self::votes::Votes;
22
23use super::error::Error;
24use http::client::Client;
25
26pub type Result<T> = std::result::Result<Response<T>, Error>;
27
28pub struct Api {
29    pub client: Client,
30    pub node: Node,
31    pub blocks: Blocks,
32    pub dapps: Dapps,
33    pub peers: Peers,
34    pub accounts: Accounts,
35    pub delegates: Delegates,
36    pub transactions: Transactions,
37    pub voters: Voters,
38    pub votes: Votes,
39}
40
41impl Api {
42    pub fn new(host: &str) -> Api {
43        Api::new_with_client(&Client::new(host))
44    }
45
46    pub fn new_with_client(client: &Client) -> Api {
47        let client = client.clone();
48
49        Api {
50            node: Node::new(client.clone()),
51            blocks: Blocks::new(client.clone()),
52            dapps: Dapps::new(client.clone()),
53            peers: Peers::new(client.clone()),
54            accounts: Accounts::new(client.clone()),
55            delegates: Delegates::new(client.clone()),
56            transactions: Transactions::new(client.clone()),
57            voters: Voters::new(client.clone()),
58            votes: Votes::new(client.clone()),
59            client,
60        }
61    }
62}