1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
pub mod bus;
pub mod crowd;
pub mod lta_client;
pub mod taxi;
pub mod traffic;
pub mod train;
use crate::lta_client::LTAClient;
use lta_utils_commons::{reqwest, serde, Client, LTAError};
use reqwest::RequestBuilder;
pub(crate) async fn build_req_async<T, M>(client: <AClient, url: &str) -> Result<M, LTAError>
where
for<'de> T: serde::Deserialize<'de> + Into<M>,
{
let rb = client.get_req_builder(url);
rb.send().await?.json::<T>().await.map(|f| f.into())
}
pub(crate) async fn build_req_async_with_query<T, M, F>(
client: <AClient,
url: &str,
query: F,
) -> Result<M, LTAError>
where
F: FnOnce(RequestBuilder) -> RequestBuilder,
for<'de> T: serde::Deserialize<'de> + Into<M>,
{
let rb = client.get_req_builder(url);
query(rb)
.send()
.await?
.json::<T>()
.await
.map(|f: T| f.into())
}