satstream_rust_sdk/apis/
addresses_api.rs

1/* 
2 * Satstream API
3 *
4 * Satstream API
5 *
6 * OpenAPI spec version: 1.0
7 * Contact: team@satstream.io
8 * Generated by: https://github.com/swagger-api/swagger-codegen.git
9 */
10
11use std::rc::Rc;
12use std::borrow::Borrow;
13use std::borrow::Cow;
14use std::collections::HashMap;
15
16use hyper;
17use serde_json;
18use futures;
19use futures::{Future, Stream};
20
21use hyper::header::UserAgent;
22
23use super::{Error, configuration};
24
25pub struct AddressesApiClient<C: hyper::client::Connect> {
26    configuration: Rc<configuration::Configuration<C>>,
27}
28
29impl<C: hyper::client::Connect> AddressesApiClient<C> {
30    pub fn new(configuration: Rc<configuration::Configuration<C>>) -> AddressesApiClient<C> {
31        AddressesApiClient {
32            configuration: configuration,
33        }
34    }
35}
36
37pub trait AddressesApi {
38    fn get_address_balance(&self, address: &str) -> Box<Future<Item = ::models::ResponsesGetAddressBalance, Error = Error<serde_json::Value>>>;
39    fn get_address_non_inscription_utxos(&self, address: &str) -> Box<Future<Item = ::models::ResponsesGetAddressNonInscriptionUtxo, Error = Error<serde_json::Value>>>;
40    fn get_address_rune_balance(&self, address: &str, runeid: &str) -> Box<Future<Item = ::models::ResponsesGetAddressRuneBalance, Error = Error<serde_json::Value>>>;
41    fn get_address_runes_balance_list(&self, address: &str) -> Box<Future<Item = ::models::ResponsesGetAddressRunesBalanceList, Error = Error<serde_json::Value>>>;
42    fn get_address_timeframe_balance(&self, address: &str, timeframe: &str, token: &str) -> Box<Future<Item = ::models::ResponsesGetAddressTimeframeBalance, Error = Error<serde_json::Value>>>;
43}
44
45
46impl<C: hyper::client::Connect>AddressesApi for AddressesApiClient<C> {
47    fn get_address_balance(&self, address: &str) -> Box<Future<Item = ::models::ResponsesGetAddressBalance, Error = Error<serde_json::Value>>> {
48        let configuration: &configuration::Configuration<C> = self.configuration.borrow();
49
50        let mut auth_headers = HashMap::<String, String>::new();
51        let mut auth_query = HashMap::<String, String>::new();
52        if let Some(ref apikey) = configuration.api_key {
53            let key = apikey.key.clone();
54            let val = match apikey.prefix {
55                Some(ref prefix) => format!("{} {}", prefix, key),
56                None => key,
57            };
58            auth_headers.insert("X-API-KEY".to_owned(), val);
59        };
60        let method = hyper::Method::Get;
61
62        let query_string = {
63            let mut query = ::url::form_urlencoded::Serializer::new(String::new());
64            for (key, val) in &auth_query {
65                query.append_pair(key, val);
66            }
67            query.finish()
68        };
69        let uri_str = format!("{}/addresses/{address}/balance?{}", configuration.base_path, query_string, address=address);
70
71        // TODO(farcaller): handle error
72        // if let Err(e) = uri {
73        //     return Box::new(futures::future::err(e));
74        // }
75        let mut uri: hyper::Uri = uri_str.parse().unwrap();
76
77        let mut req = hyper::Request::new(method, uri);
78
79        if let Some(ref user_agent) = configuration.user_agent {
80            req.headers_mut().set(UserAgent::new(Cow::Owned(user_agent.clone())));
81        }
82
83
84        for (key, val) in auth_headers {
85            req.headers_mut().set_raw(key, val);
86        }
87
88
89        // send request
90        Box::new(
91        configuration.client.request(req)
92            .map_err(|e| Error::from(e))
93            .and_then(|resp| {
94                let status = resp.status();
95                resp.body().concat2()
96                    .and_then(move |body| Ok((status, body)))
97                    .map_err(|e| Error::from(e))
98            })
99            .and_then(|(status, body)| {
100                if status.is_success() {
101                    Ok(body)
102                } else {
103                    Err(Error::from((status, &*body)))
104                }
105            })
106            .and_then(|body| {
107                let parsed: Result<::models::ResponsesGetAddressBalance, _> = serde_json::from_slice(&body);
108                parsed.map_err(|e| Error::from(e))
109            })
110        )
111    }
112
113    fn get_address_non_inscription_utxos(&self, address: &str) -> Box<Future<Item = ::models::ResponsesGetAddressNonInscriptionUtxo, Error = Error<serde_json::Value>>> {
114        let configuration: &configuration::Configuration<C> = self.configuration.borrow();
115
116        let mut auth_headers = HashMap::<String, String>::new();
117        let mut auth_query = HashMap::<String, String>::new();
118        if let Some(ref apikey) = configuration.api_key {
119            let key = apikey.key.clone();
120            let val = match apikey.prefix {
121                Some(ref prefix) => format!("{} {}", prefix, key),
122                None => key,
123            };
124            auth_headers.insert("X-API-KEY".to_owned(), val);
125        };
126        let method = hyper::Method::Get;
127
128        let query_string = {
129            let mut query = ::url::form_urlencoded::Serializer::new(String::new());
130            for (key, val) in &auth_query {
131                query.append_pair(key, val);
132            }
133            query.finish()
134        };
135        let uri_str = format!("{}/addresses/{address}/utxos?{}", configuration.base_path, query_string, address=address);
136
137        // TODO(farcaller): handle error
138        // if let Err(e) = uri {
139        //     return Box::new(futures::future::err(e));
140        // }
141        let mut uri: hyper::Uri = uri_str.parse().unwrap();
142
143        let mut req = hyper::Request::new(method, uri);
144
145        if let Some(ref user_agent) = configuration.user_agent {
146            req.headers_mut().set(UserAgent::new(Cow::Owned(user_agent.clone())));
147        }
148
149
150        for (key, val) in auth_headers {
151            req.headers_mut().set_raw(key, val);
152        }
153
154
155        // send request
156        Box::new(
157        configuration.client.request(req)
158            .map_err(|e| Error::from(e))
159            .and_then(|resp| {
160                let status = resp.status();
161                resp.body().concat2()
162                    .and_then(move |body| Ok((status, body)))
163                    .map_err(|e| Error::from(e))
164            })
165            .and_then(|(status, body)| {
166                if status.is_success() {
167                    Ok(body)
168                } else {
169                    Err(Error::from((status, &*body)))
170                }
171            })
172            .and_then(|body| {
173                let parsed: Result<::models::ResponsesGetAddressNonInscriptionUtxo, _> = serde_json::from_slice(&body);
174                parsed.map_err(|e| Error::from(e))
175            })
176        )
177    }
178
179    fn get_address_rune_balance(&self, address: &str, runeid: &str) -> Box<Future<Item = ::models::ResponsesGetAddressRuneBalance, Error = Error<serde_json::Value>>> {
180        let configuration: &configuration::Configuration<C> = self.configuration.borrow();
181
182        let mut auth_headers = HashMap::<String, String>::new();
183        let mut auth_query = HashMap::<String, String>::new();
184        if let Some(ref apikey) = configuration.api_key {
185            let key = apikey.key.clone();
186            let val = match apikey.prefix {
187                Some(ref prefix) => format!("{} {}", prefix, key),
188                None => key,
189            };
190            auth_headers.insert("X-API-KEY".to_owned(), val);
191        };
192        let method = hyper::Method::Get;
193
194        let query_string = {
195            let mut query = ::url::form_urlencoded::Serializer::new(String::new());
196            for (key, val) in &auth_query {
197                query.append_pair(key, val);
198            }
199            query.finish()
200        };
201        let uri_str = format!("{}/addresses/{address}/runes/{runeid}?{}", configuration.base_path, query_string, address=address, runeid=runeid);
202
203        // TODO(farcaller): handle error
204        // if let Err(e) = uri {
205        //     return Box::new(futures::future::err(e));
206        // }
207        let mut uri: hyper::Uri = uri_str.parse().unwrap();
208
209        let mut req = hyper::Request::new(method, uri);
210
211        if let Some(ref user_agent) = configuration.user_agent {
212            req.headers_mut().set(UserAgent::new(Cow::Owned(user_agent.clone())));
213        }
214
215
216        for (key, val) in auth_headers {
217            req.headers_mut().set_raw(key, val);
218        }
219
220
221        // send request
222        Box::new(
223        configuration.client.request(req)
224            .map_err(|e| Error::from(e))
225            .and_then(|resp| {
226                let status = resp.status();
227                resp.body().concat2()
228                    .and_then(move |body| Ok((status, body)))
229                    .map_err(|e| Error::from(e))
230            })
231            .and_then(|(status, body)| {
232                if status.is_success() {
233                    Ok(body)
234                } else {
235                    Err(Error::from((status, &*body)))
236                }
237            })
238            .and_then(|body| {
239                let parsed: Result<::models::ResponsesGetAddressRuneBalance, _> = serde_json::from_slice(&body);
240                parsed.map_err(|e| Error::from(e))
241            })
242        )
243    }
244
245    fn get_address_runes_balance_list(&self, address: &str) -> Box<Future<Item = ::models::ResponsesGetAddressRunesBalanceList, Error = Error<serde_json::Value>>> {
246        let configuration: &configuration::Configuration<C> = self.configuration.borrow();
247
248        let mut auth_headers = HashMap::<String, String>::new();
249        let mut auth_query = HashMap::<String, String>::new();
250        if let Some(ref apikey) = configuration.api_key {
251            let key = apikey.key.clone();
252            let val = match apikey.prefix {
253                Some(ref prefix) => format!("{} {}", prefix, key),
254                None => key,
255            };
256            auth_headers.insert("X-API-KEY".to_owned(), val);
257        };
258        let method = hyper::Method::Get;
259
260        let query_string = {
261            let mut query = ::url::form_urlencoded::Serializer::new(String::new());
262            for (key, val) in &auth_query {
263                query.append_pair(key, val);
264            }
265            query.finish()
266        };
267        let uri_str = format!("{}/addresses/{address}/runes?{}", configuration.base_path, query_string, address=address);
268
269        // TODO(farcaller): handle error
270        // if let Err(e) = uri {
271        //     return Box::new(futures::future::err(e));
272        // }
273        let mut uri: hyper::Uri = uri_str.parse().unwrap();
274
275        let mut req = hyper::Request::new(method, uri);
276
277        if let Some(ref user_agent) = configuration.user_agent {
278            req.headers_mut().set(UserAgent::new(Cow::Owned(user_agent.clone())));
279        }
280
281
282        for (key, val) in auth_headers {
283            req.headers_mut().set_raw(key, val);
284        }
285
286
287        // send request
288        Box::new(
289        configuration.client.request(req)
290            .map_err(|e| Error::from(e))
291            .and_then(|resp| {
292                let status = resp.status();
293                resp.body().concat2()
294                    .and_then(move |body| Ok((status, body)))
295                    .map_err(|e| Error::from(e))
296            })
297            .and_then(|(status, body)| {
298                if status.is_success() {
299                    Ok(body)
300                } else {
301                    Err(Error::from((status, &*body)))
302                }
303            })
304            .and_then(|body| {
305                let parsed: Result<::models::ResponsesGetAddressRunesBalanceList, _> = serde_json::from_slice(&body);
306                parsed.map_err(|e| Error::from(e))
307            })
308        )
309    }
310
311    fn get_address_timeframe_balance(&self, address: &str, timeframe: &str, token: &str) -> Box<Future<Item = ::models::ResponsesGetAddressTimeframeBalance, Error = Error<serde_json::Value>>> {
312        let configuration: &configuration::Configuration<C> = self.configuration.borrow();
313
314        let mut auth_headers = HashMap::<String, String>::new();
315        let mut auth_query = HashMap::<String, String>::new();
316        if let Some(ref apikey) = configuration.api_key {
317            let key = apikey.key.clone();
318            let val = match apikey.prefix {
319                Some(ref prefix) => format!("{} {}", prefix, key),
320                None => key,
321            };
322            auth_headers.insert("X-API-KEY".to_owned(), val);
323        };
324        let method = hyper::Method::Get;
325
326        let query_string = {
327            let mut query = ::url::form_urlencoded::Serializer::new(String::new());
328            query.append_pair("token", &token.to_string());
329            query.append_pair("timeframe", &timeframe.to_string());
330            for (key, val) in &auth_query {
331                query.append_pair(key, val);
332            }
333            query.finish()
334        };
335        let uri_str = format!("{}/addresses/{address}/balance/timeframe?{}", configuration.base_path, query_string, address=address);
336
337        // TODO(farcaller): handle error
338        // if let Err(e) = uri {
339        //     return Box::new(futures::future::err(e));
340        // }
341        let mut uri: hyper::Uri = uri_str.parse().unwrap();
342
343        let mut req = hyper::Request::new(method, uri);
344
345        if let Some(ref user_agent) = configuration.user_agent {
346            req.headers_mut().set(UserAgent::new(Cow::Owned(user_agent.clone())));
347        }
348
349
350        for (key, val) in auth_headers {
351            req.headers_mut().set_raw(key, val);
352        }
353
354
355        // send request
356        Box::new(
357        configuration.client.request(req)
358            .map_err(|e| Error::from(e))
359            .and_then(|resp| {
360                let status = resp.status();
361                resp.body().concat2()
362                    .and_then(move |body| Ok((status, body)))
363                    .map_err(|e| Error::from(e))
364            })
365            .and_then(|(status, body)| {
366                if status.is_success() {
367                    Ok(body)
368                } else {
369                    Err(Error::from((status, &*body)))
370                }
371            })
372            .and_then(|body| {
373                let parsed: Result<::models::ResponsesGetAddressTimeframeBalance, _> = serde_json::from_slice(&body);
374                parsed.map_err(|e| Error::from(e))
375            })
376        )
377    }
378
379}