| |
|
| |
/// 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;
|
| |
|
| |
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))?,
|