Private
Public Access
1
0
Files
Kordophone/kordophoned/src/daemon/settings.rs

44 lines
1.2 KiB
Rust
Raw Normal View History

use kordophone_db::settings::Settings as DbSettings;
use anyhow::Result;
pub mod keys {
pub static SERVER_URL: &str = "ServerURL";
pub static USERNAME: &str = "Username";
pub static TOKEN: &str = "Token";
}
2025-04-27 14:01:19 -07:00
#[derive(Debug)]
2025-04-28 16:06:51 -07:00
#[derive(Default)]
pub struct Settings {
pub server_url: Option<String>,
pub username: Option<String>,
pub token: Option<String>,
}
impl Settings {
pub fn from_db(db_settings: &mut DbSettings) -> Result<Self> {
let server_url: Option<String> = db_settings.get(keys::SERVER_URL)?;
let username: Option<String> = db_settings.get(keys::USERNAME)?;
let token: Option<String> = db_settings.get(keys::TOKEN)?;
Ok(Self {
server_url,
username,
token,
})
}
pub fn save(&self, db_settings: &mut DbSettings) -> Result<()> {
if let Some(server_url) = &self.server_url {
db_settings.put(keys::SERVER_URL, &server_url)?;
}
if let Some(username) = &self.username {
db_settings.put(keys::USERNAME, &username)?;
}
if let Some(token) = &self.token {
db_settings.put(keys::TOKEN, &token)?;
}
Ok(())
}
}