use crate::{
line::{
ArrivalPredictionsByLines, ArrivalPredictionsByLinesStopPointID, DisruptionByLines,
DisruptionByMode, LineStatusBetweenDates, LineStatusByIDs, LineStatusByModes,
LineStatusBySeverity, ListDisruptionCategories, ListLinesByID, ListLinesByModes,
ListLinesRoutesByModes, ListModes, ListRoutesForLineIDWithSequence, ListServiceTypes,
ListSeverityTypes, ListStationsByLines, RouteRequest, RouteRequestById,
SearchLineRoutesByQuery, StationTimetableByLine, StationTimetableWithDestinationByLine,
},
request::*,
};
pub struct Client {
pub app_key: String,
pub req_client: reqwest::Client,
}
impl Client {
pub fn new(app_key: String) -> Self {
let req_client = reqwest::Client::new();
Self {
app_key,
req_client,
}
}
pub fn api_version(&self) -> VersionRequest<'_> {
VersionRequest::new(self)
}
pub fn routes(&self) -> RouteRequest<'_> {
RouteRequest::new(self)
}
pub fn routes_by_line(&self) -> RouteRequestById<'_> {
RouteRequestById::new(self)
}
pub fn disruptions_by_mode(&self) -> DisruptionByMode<'_> {
DisruptionByMode::new(self)
}
pub fn disruptions_by_line(&self) -> DisruptionByLines<'_> {
DisruptionByLines::new(self)
}
pub fn arrival_predictions_by_lines(&self) -> ArrivalPredictionsByLines<'_> {
ArrivalPredictionsByLines::new(self)
}
pub fn arrival_predictions_by_lines_with_stoppoint(
&self,
) -> ArrivalPredictionsByLinesStopPointID<'_> {
ArrivalPredictionsByLinesStopPointID::new(self)
}
pub fn list_stations_by_lines(&self) -> ListStationsByLines<'_> {
ListStationsByLines::new(self)
}
pub fn list_disruption_categories(&self) -> ListDisruptionCategories<'_> {
ListDisruptionCategories::new(self)
}
pub fn list_modes(&self) -> ListModes<'_> {
ListModes::new(self)
}
pub fn list_service_types(&self) -> ListServiceTypes<'_> {
ListServiceTypes::new(self)
}
pub fn list_severity_types(&self) -> ListSeverityTypes<'_> {
ListSeverityTypes::new(self)
}
pub fn list_lines_routes_by_modes(&self) -> ListLinesRoutesByModes<'_> {
ListLinesRoutesByModes::new(self)
}
pub fn list_routes_by_line_with_sequence(&self) -> ListRoutesForLineIDWithSequence<'_> {
ListRoutesForLineIDWithSequence::new(self)
}
pub fn list_lines_by_id(&self) -> ListLinesByID<'_> {
ListLinesByID::new(self)
}
pub fn list_lines_by_modes(&self) -> ListLinesByModes<'_> {
ListLinesByModes::new(self)
}
pub fn line_status_by_severity(&self) -> LineStatusBySeverity<'_> {
LineStatusBySeverity::new(self)
}
pub fn line_status_between_dates(&self) -> LineStatusBetweenDates<'_> {
LineStatusBetweenDates::new(self)
}
pub fn line_status_by_modes(&self) -> LineStatusByModes<'_> {
LineStatusByModes::new(self)
}
pub fn line_status_by_ids(&self) -> LineStatusByIDs<'_> {
LineStatusByIDs::new(self)
}
pub fn station_timetable_by_line(&self) -> StationTimetableByLine<'_> {
StationTimetableByLine::new(self)
}
pub fn station_timetable_with_destination_by_line(
&self,
) -> StationTimetableWithDestinationByLine<'_> {
StationTimetableWithDestinationByLine::new(self)
}
pub fn search_line_routes_by_query(&self) -> SearchLineRoutesByQuery<'_> {
SearchLineRoutesByQuery::new(self)
}
}