support export
This commit is contained in:
@@ -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> {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
])
|
||||
|
||||
Reference in New Issue
Block a user