use crate::FejDbConn; use fej::ivago::{get_pickup_times, search_streets, BasicDate, PickupTime, Street}; use rocket::http::Status; use rocket_contrib::json::Json; /// This route handles the Ivago search endpoint. It returns a list of streets, /// consisting of a street name & a city. /// /// # Arguments /// /// * `search_term` - Search term to use to look for streets #[get("/search?")] pub fn route_search_streets(db_conn: FejDbConn, q: String) -> Result>, Status> { Ok(Json(search_streets(&db_conn.0, q.as_str())?)) } /// Handles returning of pickup times for a specific address. It returns a list /// of pickup times, containing a date and a description of the trash type. /// /// # Arguments /// /// * `street` - Street to look up /// * `number` - House number in the given street /// * `start_date` - Earliest date that can be returned /// * `end_date` - Latest date that can be returned #[get("/?&&&")] pub fn route_get_pickup_times( street: Street, number: u32, start_date: BasicDate, end_date: BasicDate, ) -> Result>, Status> { Ok(Json(get_pickup_times( &street, &number, &start_date.0, &end_date.0, )?)) }