aboutsummaryrefslogtreecommitdiffstats
path: root/src/api.rs
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2019-02-23 22:35:08 +0100
committerHarald Eilertsen <haraldei@anduin.net>2019-02-23 22:35:08 +0100
commit2feeca134368f128e2133adc4be91d9bd17c0dc5 (patch)
tree49e5652a7002c6f68fceaa842e06f500adb7b3a5 /src/api.rs
parentf1b68ffc0f539b7782ed5cc593cbebc360fe4791 (diff)
downloadoslobike-2feeca134368f128e2133adc4be91d9bd17c0dc5.tar.gz
oslobike-2feeca134368f128e2133adc4be91d9bd17c0dc5.tar.bz2
oslobike-2feeca134368f128e2133adc4be91d9bd17c0dc5.zip
Add api to fetch availability data as well.
Diffstat (limited to 'src/api.rs')
-rw-r--r--src/api.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/api.rs b/src/api.rs
index d44c2c4..6c85d76 100644
--- a/src/api.rs
+++ b/src/api.rs
@@ -24,7 +24,12 @@ use reqwest::{
},
Client,
};
-use crate::station::{Station, StationContainer};
+use crate::station::{
+ Station,
+ StationAvailability,
+ StationAvailabilityContainer,
+ StationContainer
+};
use crate::error::ApiResult;
const API_BASE: &'static str = "https://oslobysykkel.no/api/v1";
@@ -65,4 +70,14 @@ impl Api {
let v: StationContainer = serde_json::from_str(&response_json)?;
Ok(v.stations)
}
+
+ /// Fetch availability status for all stations
+ pub fn station_availability(&self) -> ApiResult<Vec<StationAvailability>> {
+ let response_json = self.client.get(&url_for("stations/availability"))
+ .send()?
+ .text()?;
+
+ let v: StationAvailabilityContainer = serde_json::from_str(&response_json)?;
+ Ok(v.stations)
+ }
}