From 27b37c3b6d0b75cd51a61610ec61aaac0f8d0be8 Mon Sep 17 00:00:00 2001 From: TheGeneralist <180094941+thegeneralist01@users.noreply.github.com> Date: Fri, 26 Jun 2026 12:56:38 +0200 Subject: [PATCH] feat(capture): CaptureJobSummary type and archive::get_capture_job --- crates/archivr-core/src/archive.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/crates/archivr-core/src/archive.rs b/crates/archivr-core/src/archive.rs index ae26171..23eeb33 100644 --- a/crates/archivr-core/src/archive.rs +++ b/crates/archivr-core/src/archive.rs @@ -60,6 +60,17 @@ pub struct RunSummary { pub error_summary: Option, } +#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize)] +pub struct CaptureJobSummary { + pub job_uid: String, + pub archive_id: String, + pub run_uid: Option, + pub status: String, + pub error_text: Option, + pub created_at: String, + pub updated_at: String, +} + #[derive(Debug, Clone, PartialEq, Eq, serde::Serialize)] pub struct Tag { pub tag_uid: String, @@ -299,6 +310,21 @@ pub fn list_runs(conn: &rusqlite::Connection) -> Result> { Ok(runs) } +pub fn get_capture_job( + conn: &rusqlite::Connection, + job_uid: &str, +) -> Result> { + 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`. /// /// `artifact.relpath` is a store-relative path (e.g. `raw/a/b/abc.pdf`).