From b011f3f972f76ae3176c1298ad1b65dc5077d058 Mon Sep 17 00:00:00 2001 From: Supermjork Date: Mon, 18 Dec 2023 18:18:52 +0200 Subject: [PATCH] FOUND DYNAMICALLY BUILDING SQLX QUERIES TOO LATE --- src/arrivals.rs | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) 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