menu search complete

This commit is contained in:
Colin McKechney
2023-05-01 01:44:41 +00:00
parent d1138c12cf
commit d4ee895b80
2 changed files with 14 additions and 9 deletions

View File

@@ -1,7 +1,7 @@
use oracle::{Result, Connection}; use oracle::{Result, Connection};
use serde::{Serialize, Deserialize}; use serde::{Serialize, Deserialize};
use log::{info, error}; use log::{info, error};
use actix_web::{self, Responder, web::Json, HttpResponse}; use actix_web::{web::Json};
use crate::config::{ORACLE_USER, ORACLE_PASS, ORACLE_CON_STR}; use crate::config::{ORACLE_USER, ORACLE_PASS, ORACLE_CON_STR};
@@ -23,15 +23,15 @@ pub struct SearchResult {
serving_size: Option<String> serving_size: Option<String>
} }
pub async menu_search(term: Json<SearchTerm>) -> Json<SearchResults> { pub async fn menu_search(term: Json<SearchTerm>) -> Json<SearchResults> {
let term = term.into_inner(); let term = term.into_inner();
match fuzzy_search(term) { match fuzzy_search(&term.search_term) {
Ok(result) => Json(result), Ok(result) => Json(result),
Err(e) => { Err(e) => {
error!("failed to search for {}", term); error!("failed to search for {}: {}", term.search_term, e);
Json(vec![]) Json(SearchResults::default())
} }
} }
@@ -39,11 +39,11 @@ pub async menu_search(term: Json<SearchTerm>) -> Json<SearchResults> {
fn fuzzy_search(term: &str) -> Result<SearchResults> { fn fuzzy_search(term: &str) -> Result<SearchResults> {
let conn = Connection::connect(ORACLE_USER,ORACLE_PASS,ORACLE_CON_STR)?; let conn = Connection::connect(ORACLE_USER,ORACLE_PASS,ORACLE_CON_STR)?;
let stmt = conn.statement("select * from menu_item where item_name like :term").build()?; let mut stmt = conn.statement(format!("select * from menu_item where item_name like '{}%'", term).as_str()).build()?;
let rows = stmt.query_named(&[("term", &term)])?; let rows = stmt.query(&[])?;
let rows_vec = SearchResults::default(); let mut rows_vec = SearchResults::default();
for row_result in rows{ for row_result in rows{
let row = row_result?; let row = row_result?;
@@ -54,6 +54,7 @@ fn fuzzy_search(term: &str) -> Result<SearchResults> {
serving_size: row.get(3).unwrap_or(None) serving_size: row.get(3).unwrap_or(None)
}); });
} }
conn.close()?;
Ok(rows_vec) Ok(rows_vec)

View File

@@ -67,9 +67,13 @@ async fn main() -> std::io::Result<()> {
web::resource("/week_meals") web::resource("/week_meals")
.route(web::post().to(api::week::week_meals)) .route(web::post().to(api::week::week_meals))
) )
.service( /* .service(
web::resource("/week_progress/{net_id}") web::resource("/week_progress/{net_id}")
.route(web::get().to(api::week::week_lookup)) .route(web::get().to(api::week::week_lookup))
) */
.service(
web::resource("/menu_search")
.route(web::post().to(api::menu::menu_search))
) )
.route("/", web::get().to(api_index)) .route("/", web::get().to(api_index))
) )