diff --git a/src/arrivals.rs b/src/arrivals.rs index b4673bf..d190584 100644 --- a/src/arrivals.rs +++ b/src/arrivals.rs @@ -15,7 +15,7 @@ pub struct Arrival { direction: bool, } use web::Data; -use sqlx::{PgPool, query_as}; +use sqlx::{PgPool, query_as, query}; #[get("all")] async fn show_arrivals(db_pool: Data) -> impl Responder { let arrivals = query_as!(Arrival, r#"SELECT * FROM arrivals"#) @@ -27,3 +27,25 @@ async fn show_arrivals(db_pool: Data) -> impl Responder { .content_type("application/json") .json(arrivals) } + +#[get("specific")] +async fn show_specific(db_pool: Data, type_arr: Vec) -> impl Responder { + // Query Logic + // Idea: Construct a query bit by bit depending on input + + let mut dyn_query = String::from("SELECT * FROM arrivals WHERE "); + + if type_arr.len() == 1 { + dyn_query.push_str(&format!("tram_line = {}", type_arr[0])); + } + + + // Check: https://stackoverflow.com/questions/74956100/how-to-build-safe-dynamic-query-with-sqlx-in-rust + // lappy ded ;-; + let arrivals = String::from("AIDS"); + + dbg!(&arrivals); + HttpResponse::Ok() + .content_type("application/json") + .json(arrivals) +} \ No newline at end of file