1
Fork 0
mirror of https://github.com/thegeneralist01/archivr synced 2026-07-22 03:05:32 +02:00

feat(capture): CaptureJobSummary type and archive::get_capture_job

This commit is contained in:
TheGeneralist 2026-06-26 12:56:38 +02:00
parent d86a4d92a8
commit 27b37c3b6d
Signed by: thegeneralist01
SSH key fingerprint: SHA256:pp9qddbCNmVNoSjevdvQvM5z0DHN7LTa8qBMbcMq/R4

View file

@ -60,6 +60,17 @@ pub struct RunSummary {
pub error_summary: Option<String>, pub error_summary: Option<String>,
} }
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize)]
pub struct CaptureJobSummary {
pub job_uid: String,
pub archive_id: String,
pub run_uid: Option<String>,
pub status: String,
pub error_text: Option<String>,
pub created_at: String,
pub updated_at: String,
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize)] #[derive(Debug, Clone, PartialEq, Eq, serde::Serialize)]
pub struct Tag { pub struct Tag {
pub tag_uid: String, pub tag_uid: String,
@ -299,6 +310,21 @@ pub fn list_runs(conn: &rusqlite::Connection) -> Result<Vec<RunSummary>> {
Ok(runs) Ok(runs)
} }
pub fn get_capture_job(
conn: &rusqlite::Connection,
job_uid: &str,
) -> Result<Option<CaptureJobSummary>> {
Ok(database::get_capture_job(conn, job_uid)?.map(|r| CaptureJobSummary {
job_uid: r.job_uid,
archive_id: r.archive_id,
run_uid: r.run_uid,
status: r.status,
error_text: r.error_text,
created_at: r.created_at,
updated_at: r.updated_at,
}))
}
/// Resolves an artifact to its absolute on-disk path under `store_path`. /// Resolves an artifact to its absolute on-disk path under `store_path`.
/// ///
/// `artifact.relpath` is a store-relative path (e.g. `raw/a/b/abc.pdf`). /// `artifact.relpath` is a store-relative path (e.g. `raw/a/b/abc.pdf`).