feature: add command to run tasks

This commit is contained in:
Alexander Navarro 2025-05-12 16:40:41 -04:00
parent 63c20cfc87
commit 5387210844
8 changed files with 160 additions and 17 deletions

View file

@ -5,7 +5,7 @@ use figment::{
};
use readwise_bulk_upload::config::{Command, Config};
use readwise_bulk_upload::readwise::DocumentPayload;
use readwise_bulk_upload::task_manager::TaskManager;
use readwise_bulk_upload::task_manager::{TaskManager, TaskStatus};
use readwise_bulk_upload::{Error, Result};
use std::fs::File;
use tabled::Table;
@ -29,6 +29,7 @@ async fn main() -> Result<()> {
}
async fn run(command: &Command) -> Result<()> {
let task_manager = TaskManager::new().await?;
match command {
Command::LoadTasks { path } => {
let file = File::open(path).map_err(|_| {
@ -40,16 +41,21 @@ async fn run(command: &Command) -> Result<()> {
let documents: Vec<DocumentPayload> = serde_json::from_reader(file)?;
let task_manager = TaskManager::new().await?;
task_manager.load_tasks(documents).await?;
}
Command::Query => {
let task_manager = TaskManager::new().await?;
let tasks = task_manager.get_tasks::<DocumentPayload>(None, 25).await?;
let tasks = task_manager.get_tasks::<DocumentPayload>(None, Some(25)).await?;
println!("{}", Table::new(tasks));
}
Command::Run => {
task_manager.run_tasks::<DocumentPayload>(|task| {
println!("{}", task.get_key());
TaskStatus::Completed
}).await?;
}
Command::None => {
Config::command().print_help()?;
}