void-focus 0.3.0-alpha.6

A feature-rich terminal focus timer with task tracking
Documentation
use std::fs;
use std::path::Path;

use anyhow::{Context, Result};

use crate::model::AppData;

use super::Database;

pub fn import_json(db: &Database, path: &Path) -> Result<()> {
    let raw = fs::read_to_string(path).context("reading legacy data.json")?;
    if raw.trim().is_empty() {
        return Ok(());
    }
    let data: AppData = serde_json::from_str(&raw).context("parsing legacy data.json")?;
    db.save_app_data(&data)?;
    for session in &data.session_history {
        db.insert_focus_session(session)?;
    }
    Ok(())
}