From 7926ee5b1addecf48162abc6ed2bbf190e5b9db2 Mon Sep 17 00:00:00 2001 From: Hansoo Date: Sun, 5 Feb 2023 20:15:28 +0900 Subject: [PATCH] added function to get items --- src-tauri/src/main.rs | 28 +++++++++++++++++++++++++++- src-tauri/src/model.rs | 8 ++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 60bba0a..7ea737c 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -2,6 +2,7 @@ all(not(debug_assertions), target_os = "windows"), windows_subsystem = "windows" )] +use serde_json::json; use wana_kana::to_katakana::*; use wana_kana::to_hiragana::*; mod model; @@ -107,6 +108,31 @@ fn search_move(index: i64) -> MoveSearchResult { condition: None, } } +#[tauri::command] +fn get_items() -> Vec { + let connection = sqlite::open("./pokemon.db").unwrap(); + let query = "SELECT * FROM item WHERE 1"; + let mut items: Vec = vec![]; + for row in connection + .prepare(query) + .unwrap() + .into_iter() + .map(|row| row.unwrap()) + { + let row_result = ItemSearchResult { + id: row.read::("id"), + name: row.read::<&str, _>("name").to_string(), + image: row.read::<&str, _>("image").to_string(), + effect: match row.read::, _>("effect") { + Some(t) => Some(serde_json::from_str(t).unwrap_or(json!({}))), + _ => None, + }, + }; + items.push(row_result); + } + return items; +} + #[tauri::command] fn search(index: i64) -> SearchResult { let connection = sqlite::open("./pokemon.db").unwrap(); @@ -173,7 +199,7 @@ fn search(index: i64) -> SearchResult { } fn main() { tauri::Builder::default() - .invoke_handler(tauri::generate_handler![autosearch_move, search_move, autosearch, search]) + .invoke_handler(tauri::generate_handler![autosearch_move, search_move, autosearch, search, get_items]) .run(tauri::generate_context!()) .expect("error while running tauri application"); } diff --git a/src-tauri/src/model.rs b/src-tauri/src/model.rs index 2abf7f6..14b4673 100644 --- a/src-tauri/src/model.rs +++ b/src-tauri/src/model.rs @@ -39,4 +39,12 @@ pub struct MoveSearchResult { pub struct Autosearch { pub id: i64, pub name: String, +} + +#[derive(Serialize, Deserialize, Debug, Clone)] +pub struct ItemSearchResult { + pub id: i64, + pub name: String, + pub image: String, + pub effect: Option, } \ No newline at end of file