aven 0.1.13

Local-first task manager CLI and sync server
Documentation
mod config;
mod projects;

#[cfg(test)]
pub use aven_core::operations::attachment_read_items_by_task;
pub use aven_core::operations::{
    AttachmentAddInput, ConflictDetail, ConflictListItem, TaskAttachmentAddInput, TaskDraft,
    TaskOutcome, TaskUpdate,
};
#[cfg(test)]
pub use aven_core::test_support::{
    add_task_dependency, add_task_to_epic, create_label_operation, set_task_deleted, update_task,
    update_task_labels_in_workspace,
};

#[cfg(test)]
pub async fn create_task(
    conn: &mut sqlx::SqliteConnection,
    workspace: &crate::workspaces::Workspace,
    mut draft: aven_core::operations::TaskDraft,
) -> anyhow::Result<aven_core::operations::TaskOutcome> {
    let project = aven_core::test_support::resolve_or_create_project_in_workspace(
        conn,
        &workspace.id,
        draft.project.as_deref().unwrap_or("default"),
    )
    .await?;
    draft.project = Some(project.key);
    aven_core::test_support::create_task(conn, workspace, draft).await
}

pub use config::{init_config, show_config, show_config_paths};

pub use projects::{
    add_project_path_operation, create_project_operation, delete_project_operation,
    list_project_paths_operation, remove_project_path_operation, rename_config_project_mapping,
    rename_project_operation,
};