Move server code into its own module

This commit is contained in:
Joscha 2023-08-07 14:23:47 +02:00
parent ad0c1a69cb
commit 45abda2b6d
12 changed files with 15 additions and 4 deletions

View file

@ -0,0 +1,41 @@
use sqlx::{Acquire, SqlitePool};
use time::OffsetDateTime;
use tracing::debug;
use crate::{somehow, util};
pub async fn update(db: &SqlitePool) -> somehow::Result<()> {
debug!("Updating queue");
let mut tx = db.begin().await?;
let conn = tx.acquire().await?;
// Get all newly added tracked commits
let new = sqlx::query!("SELECT hash FROM commits WHERE new AND reachable = 2")
.fetch_all(&mut *conn)
.await?;
let new_len = new.len();
// Insert them into the queue
for row in new {
let id = util::new_run_id();
let date = OffsetDateTime::now_utc();
sqlx::query!(
"INSERT INTO queue (id, hash, date) VALUES (?, ?, ?)",
id,
row.hash,
date
)
.execute(&mut *conn)
.await?;
}
debug!("Added {new_len} commits to the queue");
// Mark all commits as old
sqlx::query!("UPDATE commits SET new = false")
.execute(&mut *conn)
.await?;
tx.commit().await?;
debug!("Updated queue");
Ok(())
}