Browse Source

move db to tauri app directory

biblius 1 week ago
parent
commit
c518c8cbec
3 changed files with 22 additions and 5 deletions
  1. 19 2
      src-tauri/src/lib.rs
  2. 2 2
      src-tauri/src/state.rs
  3. 1 1
      src-tauri/tauri.conf.json

+ 19 - 2
src-tauri/src/lib.rs

@@ -1,5 +1,6 @@
 use crate::state::AppState;
 use tauri::Manager;
+use tauri_plugin_log::log;
 use tauri_plugin_store::StoreExt;
 
 pub type AppResult<T> = Result<T, error::AppError>;
@@ -17,7 +18,7 @@ mod workspace;
 #[cfg_attr(mobile, tauri::mobile_entry_point)]
 pub fn run() {
     tauri::Builder::default()
-        .plugin(tauri_plugin_fs::init())
+        // .plugin(tauri_plugin_fs::init())
         .plugin(tauri_plugin_store::Builder::new().build())
         .plugin(
             tauri_plugin_log::Builder::new()
@@ -27,8 +28,24 @@ pub fn run() {
         .plugin(tauri_plugin_opener::init())
         .setup(|app| {
             app.store("settings.json")?;
-            let state = tauri::async_runtime::block_on(async move { AppState::new().await });
+
+            let dir = app
+                .path()
+                .app_config_dir()
+                .expect("unable to load app directory");
+
+            let db_path = dir.join("rquest.db");
+
+            let db_url = format!("sqlite:{}", db_path.display());
+
+            log::info!("connecting to database {db_url}");
+
+            let state = tauri::async_runtime::block_on(async move {
+                AppState::new(crate::db::init(&db_url).await)
+            });
+
             app.manage(state);
+
             Ok(())
         })
         .invoke_handler(tauri::generate_handler![

+ 2 - 2
src-tauri/src/state.rs

@@ -4,6 +4,7 @@ use crate::{
 };
 use futures::FutureExt;
 use serde::Serialize;
+use sqlx::SqlitePool;
 use std::{collections::HashMap, time::Instant};
 use tauri::ipc::Channel;
 use tauri_plugin_log::log;
@@ -19,10 +20,9 @@ pub struct AppState {
 }
 
 impl AppState {
-    pub async fn new() -> Self {
+    pub fn new(db: SqlitePool) -> Self {
         log::info!("Connecting to DB");
 
-        let db = crate::db::init("sqlite:/home/biblius/codium/rusty/rquest/rquest.db").await;
         let client = reqwest::Client::new();
 
         let (req_tx, mut req_rx) = tokio::sync::mpsc::channel::<OutboundRequest>(128);

+ 1 - 1
src-tauri/tauri.conf.json

@@ -2,7 +2,7 @@
   "$schema": "https://schema.tauri.app/config/2",
   "productName": "rquest",
   "version": "0.1.0",
-  "identifier": "com.biblius.rquest",
+  "identifier": "rquest",
   "build": {
     "beforeDevCommand": "npm run dev",
     "devUrl": "http://localhost:1420",