Radish alpha
r
Radicle CI broker
Radicle
Git (anonymous pull)
Log in to clone via SSH
ydb.rs: fix list and get runs
Lars Wirzenius committed 1 year ago
commit 99f0124aa12f01f307f628af24ec7f1f720b5d20
parent cb05ca9e65cc4f9ad997cc60940bf8a395d2d6b2
1 file changed +13 -12
modified src/db.rs
@@ -350,23 +350,23 @@ impl Db {

    /// Return list of CI runs currently in the database.
    pub fn list_runs(&self) -> Result<Vec<RunId>, DbError> {
-
        let mut select = self.prepare("SELECT json FROM ci_runs")?;
+
        let mut select = self.prepare("SELECT run_id FROM ci_runs")?;

        let started = Instant::now();
        let max_wait = Duration::from_millis(MAX_WAIT);

-
        let mut runs = vec![];
+
        let mut run_ids = vec![];

        loop {
-
            match select.stmt.next() {
+
            let next = select.stmt.next();
+
            match next {
                Ok(State::Row) => {
-
                    let json: String = select
+
                    let run_id: String = select
                        .stmt
-
                        .read("event")
-
                        .map_err(|e| DbError::get_event(&select.sql, e))?;
-
                    let run = serde_json::from_str(&json)
-
                        .map_err(|e| DbError::run_from_json(&json, e))?;
-
                    runs.push(run);
+
                        .read("run_id")
+
                        .map_err(|e| DbError::get_run(&select.sql, e))?;
+
                    let run_id = RunId::from(run_id.as_str());
+
                    run_ids.push(run_id);
                }
                Ok(State::Done) => {
                    break;
@@ -383,7 +383,7 @@ impl Db {
            }
        }

-
        Ok(runs)
+
        Ok(run_ids)
    }

    /// Return a specific CI run, given is id, if one exists.
@@ -399,13 +399,14 @@ impl Db {

        let mut run = None;

+
        select.stmt.reset().unwrap();
        loop {
            match select.stmt.next() {
                Ok(State::Row) => {
                    let json: String = select
                        .stmt
-
                        .read("event")
-
                        .map_err(|e| DbError::get_event(&select.sql, e))?;
+
                        .read("json")
+
                        .map_err(|e| DbError::get_run(&select.sql, e))?;
                    run = Some(
                        serde_json::from_str(&json)
                            .map_err(|e| DbError::run_from_json(&json, e))?,