From 5117a3318f6f9bff2f2269e731f9f0be4a7b935f Mon Sep 17 00:00:00 2001 From: Colin McKechney Date: Sun, 30 Apr 2023 21:03:44 +0000 Subject: [PATCH] accounted for null --- backend/src/api/eatery.rs | 67 +++++++++++++++++++-------------------- backend/src/main.rs | 2 +- 2 files changed, 34 insertions(+), 35 deletions(-) diff --git a/backend/src/api/eatery.rs b/backend/src/api/eatery.rs index 4ef3795..7bb63cd 100644 --- a/backend/src/api/eatery.rs +++ b/backend/src/api/eatery.rs @@ -7,37 +7,36 @@ const ORACLE_USER: &str = "timmy"; const ORACLE_PASS: &str = "timmy"; #[derive(Serialize, Deserialize, Debug, Default)] -struct FoodItem { +pub struct FoodItem { item_id: u32, - eatery_id: u32, - item_name: String, - serving_size: f32, - calories: f32, - fat: f32, - sat_fat: f32, - trans_fat: f32, - carbs: f32, - fiber: f32, - sugar: f32, - protein: f32, - sodium: f32, - potassium: f32, - cholesterol: f32 + eatery_id: Option, + item_name: Option, + serving_size: Option, + calories: Option, + fat: Option, + sat_fat: Option, + trans_fat: Option, + carbs: Option, + fiber: Option, + sugar: Option, + protein: Option, + sodium: Option, + potassium: Option, + cholesterol: Option } -pub async fn menu(eatery: Path) -> impl Responder { +pub async fn menu(eatery: Path) -> Json> { let eatery = eatery.into_inner(); let response = match grab_rows(eatery) { Ok(r) => r, Err(e) => { error!("Failed to grab rows: {}", e); - return HttpResponse::InternalServerError(); + return Json(vec![]); } }; - Json(response); - HttpResponse::Ok() + Json(response) } @@ -46,7 +45,7 @@ fn grab_rows(eatery: String) -> oracle::Result> { let conn = Connection::connect(ORACLE_USER, ORACLE_PASS, "")?; - let mut stmt = conn.statement("select * from menu_item natural join nutrition_info food where menu_item.eatery_id = :1").build()?; + let mut stmt = conn.statement("select * from menu_item natural join nutrition_info where eatery_id = :1").build()?; let rows = stmt.query(&[&eatery])?; @@ -56,20 +55,20 @@ fn grab_rows(eatery: String) -> oracle::Result> { let row = row_result?; row_vec.push( FoodItem { item_id: row.get(0)?, - eatery_id: row.get(1)?, - item_name: row.get(2)?, - serving_size: row.get(3)?, - calories: row.get(4)?, - fat: row.get(5)?, - sat_fat: row.get(6)?, - trans_fat: row.get(7)?, - carbs: row.get(8)?, - fiber: row.get(9)?, - sugar: row.get(10)?, - protein: row.get(11)?, - sodium: row.get(12)?, - potassium: row.get(13)?, - cholesterol: row.get(14)?}); + eatery_id: row.get(1).unwrap_or(None), + item_name: row.get(2).unwrap_or(None), + serving_size: row.get(3).unwrap_or(None), + calories: row.get(4).unwrap_or(None), + fat: row.get(5).unwrap_or(None), + sat_fat: row.get(6).unwrap_or(None), + trans_fat: row.get(7).unwrap_or(None), + carbs: row.get(8).unwrap_or(None), + fiber: row.get(9).unwrap_or(None), + sugar: row.get(10).unwrap_or(None), + protein: row.get(11).unwrap_or(None), + sodium: row.get(12).unwrap_or(None), + potassium: row.get(13).unwrap_or(None), + cholesterol: row.get(14).unwrap_or(None)}); } Ok(row_vec) diff --git a/backend/src/main.rs b/backend/src/main.rs index 12f0a47..ea3061d 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -58,7 +58,7 @@ async fn main() -> std::io::Result<()> { ) .route("/", web::get().to(index)) }) - .bind(("127.0.0.1", PORT))? + .bind(("0.0.0.0", PORT))? .run() .await;