Files
ERitors-Scribe-Desktop/src-tauri/src/lib.rs

182 lines
11 KiB
Rust
Raw Blame History

mod crypto;
mod db;
mod domains;
mod error;
mod helpers;
mod shared;
use db::connection::create_db_manager;
use shared::crash_reporter::init_panic_hook;
use shared::session::create_session;
use std::path::PathBuf;
pub fn run() {
init_panic_hook();
let app_data_dir = dirs_next::data_dir()
.unwrap_or_else(|| PathBuf::from("."))
.join("com.eritors.scribe.desktop");
let db_manager = create_db_manager(app_data_dir);
let session = create_session();
tauri::Builder::default()
.plugin(tauri_plugin_shell::init())
.plugin(tauri_plugin_http::init())
.manage(db_manager)
.manage(session)
.invoke_handler(tauri::generate_handler![
// ─── User ──────────────────────────────────────
domains::user::commands::init_user,
domains::user::commands::db_initialize,
domains::user::commands::get_token,
domains::user::commands::set_token,
domains::user::commands::remove_token,
domains::user::commands::get_user_encryption_key,
domains::user::commands::get_platform,
domains::user::commands::get_user_info,
domains::user::commands::sync_user,
domains::user::commands::update_user_info,
domains::user::commands::dev_reset_all,
// ─── Offline ───────────────────────────────────
domains::offline::commands::offline_pin_set,
domains::offline::commands::offline_pin_verify,
domains::offline::commands::offline_mode_get,
domains::offline::commands::offline_mode_set,
domains::offline::commands::offline_sync_check,
// ─── Book (includes story, guideline, export, sync) ─
domains::book::commands::get_books,
domains::book::commands::get_book,
domains::book::commands::get_book_basic_information,
domains::book::commands::create_book,
domains::book::commands::update_book_basic_info,
domains::book::commands::delete_book,
domains::book::commands::update_book_tool_setting,
domains::book::commands::get_book_story,
domains::book::commands::update_book_story,
domains::book::commands::add_incident,
domains::book::commands::remove_incident,
domains::book::commands::add_plot_point,
domains::book::commands::remove_plot_point,
domains::book::commands::add_issue,
domains::book::commands::remove_issue,
domains::book::commands::get_worlds,
domains::book::commands::add_world,
domains::book::commands::add_world_element,
domains::book::commands::remove_world_element,
domains::book::commands::update_world,
domains::book::commands::get_guideline,
domains::book::commands::update_guideline,
domains::book::commands::get_ai_guideline,
domains::book::commands::update_ai_guideline,
domains::book::commands::get_book_export_info,
domains::book::commands::export_book,
domains::book::commands::get_synced_books,
domains::book::commands::upload_book_to_server,
domains::book::commands::sync_save_book,
domains::book::commands::sync_book_to_client,
domains::book::commands::sync_book_to_server,
// ─── Chapter ───────────────────────────────────
domains::chapter::commands::get_chapters,
domains::chapter::commands::get_whole_chapter,
domains::chapter::commands::get_chapter_story,
domains::chapter::commands::get_companion_content,
domains::chapter::commands::get_chapter_content,
domains::chapter::commands::save_chapter_content,
domains::chapter::commands::get_last_chapter,
domains::chapter::commands::add_chapter,
domains::chapter::commands::remove_chapter,
domains::chapter::commands::update_chapter,
domains::chapter::commands::add_chapter_information,
domains::chapter::commands::remove_chapter_information,
domains::chapter::commands::get_book_tags,
// ─── Character ─────────────────────────────────
domains::character::commands::get_character_list,
domains::character::commands::get_character_attributes,
domains::character::commands::create_character,
domains::character::commands::add_character_attribute,
domains::character::commands::delete_character_attribute,
domains::character::commands::update_character,
domains::character::commands::delete_character,
// ─── Location ──────────────────────────────────
domains::location::commands::get_all_locations,
domains::location::commands::add_location_section,
domains::location::commands::add_location_element,
domains::location::commands::add_location_sub_element,
domains::location::commands::update_locations,
domains::location::commands::update_location_section_with_series_link,
domains::location::commands::delete_location_section,
domains::location::commands::delete_location_element,
domains::location::commands::delete_location_sub_element,
// ─── Spell ─────────────────────────────────────
domains::spell::commands::get_spell_list,
domains::spell::commands::get_spell_tags,
domains::spell::commands::get_spell_detail,
domains::spell::commands::create_spell,
domains::spell::commands::update_spell,
domains::spell::commands::delete_spell,
domains::spell::commands::create_spell_tag,
domains::spell::commands::update_spell_tag,
domains::spell::commands::delete_spell_tag,
// ─── Series ────────────────────────────────────
domains::series::commands::get_series_list,
domains::series::commands::get_series_detail,
domains::series::commands::create_series,
domains::series::commands::update_series,
domains::series::commands::delete_series,
domains::series::commands::get_series_books,
domains::series::commands::add_book_to_series,
domains::series::commands::remove_book_from_series,
domains::series::commands::reorder_series_books,
domains::series::commands::get_series_for_book,
// ─── Series Character ──────────────────────────
domains::series_character::commands::get_series_character_list,
domains::series_character::commands::get_series_character_attributes,
domains::series_character::commands::add_series_character,
domains::series_character::commands::update_series_character,
domains::series_character::commands::delete_series_character,
domains::series_character::commands::add_series_character_attribute,
domains::series_character::commands::delete_series_character_attribute,
// ─── Series Location ───────────────────────────
domains::series_location::commands::get_series_location_list,
domains::series_location::commands::add_series_location_section,
domains::series_location::commands::add_series_location_element,
domains::series_location::commands::add_series_location_sub_element,
domains::series_location::commands::delete_series_location,
domains::series_location::commands::delete_series_location_element,
domains::series_location::commands::delete_series_location_sub_element,
// ─── Series World ──────────────────────────────
domains::series_world::commands::get_series_world_list,
domains::series_world::commands::add_series_world,
domains::series_world::commands::update_series_world,
domains::series_world::commands::add_series_world_element,
domains::series_world::commands::delete_series_world_element,
// ─── Series Spell ──────────────────────────────
domains::series_spell::commands::get_series_spell_list,
domains::series_spell::commands::get_series_spell_detail,
domains::series_spell::commands::add_series_spell,
domains::series_spell::commands::update_series_spell,
domains::series_spell::commands::delete_series_spell,
domains::series_spell::commands::add_series_spell_tag,
domains::series_spell::commands::update_series_spell_tag,
domains::series_spell::commands::delete_series_spell_tag,
// ─── Series Sync ───────────────────────────────
domains::series_sync::commands::upload_series_to_server,
domains::series_sync::commands::sync_save_series,
domains::series_sync::commands::sync_series_to_client,
domains::series_sync::commands::sync_series_to_server,
domains::series_sync::commands::series_sync_upload,
// ─── Sync ──────────────────────────────────────
domains::sync::commands::get_synced_series,
// ─── Tombstone ─────────────<E29480><E29480><EFBFBD>───────────────────
domains::tombstone::commands::get_tombstones_since,
domains::tombstone::commands::apply_book_tombstones,
domains::tombstone::commands::apply_series_tombstones,
// ─── Migration ────────────<E29480><E29480>───────────────────
domains::migration::commands::check_electron_migration,
domains::migration::commands::import_from_electron,
])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}