lta/async/
facility.rs

1use crate::models::facility::prelude::FacilityMaintenanceRawResp;
2use crate::models::train::prelude::*;
3use crate::r#async::build_req_with_query;
4use crate::{Client, Facility, LTAClient, LTAResult};
5use async_trait::async_trait;
6
7#[async_trait]
8pub trait FacilityRequests<C: Client> {
9    /// Returns pre-signed links to JSON file containing facilities maintenance schedules of the particular station
10    ///
11    /// **Update Freq**: Adhoc
12    async fn get_facilities_maintenance(
13        client: &C,
14        station_code: StationCode,
15    ) -> LTAResult<Vec<String>>;
16}
17
18#[async_trait]
19impl FacilityRequests<LTAClient> for Facility {
20    async fn get_facilities_maintenance(
21        client: &LTAClient,
22        station_code: StationCode,
23    ) -> LTAResult<Vec<String>> {
24        build_req_with_query::<FacilityMaintenanceRawResp, _, _, _>(
25            client,
26            api_url!("/FacilitiesMaintenance"),
27            |rb| rb.query(&[("StationCode", station_code)]),
28        )
29        .await
30    }
31}