support export

This commit is contained in:
Julian Freeman
2026-03-22 19:05:57 -04:00
parent 43787517c4
commit b32d5ddbd3
4 changed files with 121 additions and 5 deletions

View File

@@ -103,12 +103,32 @@ pub fn get_events(path: &str, date: &str) -> anyhow::Result<Vec<Event>> {
content: row.get(6)?,
})
})?;
let mut results = Vec::new();
let mut events = Vec::new();
for event in event_iter {
results.push(event?);
events.push(event?);
}
Ok(results)
Ok(events)
}
pub fn get_events_range(path: &str, start_date: &str, end_date: &str) -> anyhow::Result<Vec<Event>> {
let conn = Connection::open(path)?;
let mut stmt = conn.prepare("SELECT id, date, start_minute, end_minute, main_tag_id, sub_tag_id, content FROM events WHERE date >= ?1 AND date <= ?2 ORDER BY date, start_minute")?;
let event_iter = stmt.query_map(params![start_date, end_date], |row| {
Ok(Event {
id: row.get(0)?,
date: row.get(1)?,
start_minute: row.get(2)?,
end_minute: row.get(3)?,
main_tag_id: row.get(4)?,
sub_tag_id: row.get(5)?,
content: row.get(6)?,
})
})?;
let mut events = Vec::new();
for event in event_iter {
events.push(event?);
}
Ok(events)
}
pub fn save_event(path: &str, event: Event) -> anyhow::Result<i64> {

View File

@@ -51,6 +51,13 @@ pub fn get_events(state: tauri::State<'_, AppState>, date: String) -> Result<Vec
crate::db::get_events(path, &date).map_err(|e| e.to_string())
}
#[tauri::command]
pub fn get_events_range(state: tauri::State<'_, AppState>, start_date: String, end_date: String) -> Result<Vec<crate::db::Event>, String> {
let path = state.db_path.lock().unwrap();
let path = path.as_ref().ok_or("Database path not set")?;
crate::db::get_events_range(path, &start_date, &end_date).map_err(|e| e.to_string())
}
#[tauri::command]
pub fn save_event(state: tauri::State<'_, AppState>, event: crate::db::Event) -> Result<i64, String> {
let path = state.db_path.lock().unwrap();

View File

@@ -28,6 +28,7 @@ pub fn run() {
engine::add_tag,
engine::delete_tag,
engine::get_events,
engine::get_events_range,
engine::save_event,
engine::delete_event
])