diff --git a/src/db.rs b/src/db.rs index cb818d3..6c075b1 100644 --- a/src/db.rs +++ b/src/db.rs @@ -13,37 +13,59 @@ pub const N_STATEMENTS: usize = 4; pub async fn get_link(state: &Mutex, link: &str) -> Result, Error> { let lock = state.lock().await; - Ok(lock.db_client.query_opt(&lock.statements[STATEMENT_GET_LINK], &[&link]).await?.map(|row| row.get(0))) + Ok(lock + .db_client + .query_opt(&lock.statements[STATEMENT_GET_LINK], &[&link]) + .await? + .map(|row| row.get(0))) } pub async fn add_link(state: &Mutex, link: &str, url: &str) -> Result<(), Error> { let lock = state.lock().await; - lock.db_client.execute(&lock.statements[STATEMENT_ADD_LINK], &[&link, &url]).await?; + lock.db_client + .execute(&lock.statements[STATEMENT_ADD_LINK], &[&link, &url]) + .await?; Ok(()) } -pub async fn add_temporary_link(state: &Mutex, link: &str, url: &str, ttl: u64) -> Result<(), Error> { +pub async fn add_temporary_link( + state: &Mutex, + link: &str, + url: &str, + ttl: u64, +) -> Result<(), Error> { let time = SystemTime::now() + Duration::from_secs(ttl); let lock = state.lock().await; - lock.db_client.execute(&lock.statements[STATEMENT_ADD_TEMP_LINK], &[&link, &url, &time]).await?; + lock.db_client + .execute( + &lock.statements[STATEMENT_ADD_TEMP_LINK], + &[&link, &url, &time], + ) + .await?; Ok(()) } pub async fn delete_expired_links(state: &Mutex) -> Result<(), Error> { let lock = state.lock().await; - lock.db_client.execute(&lock.statements[STATEMENT_DELETE_EXPIRED], &[]).await?; + lock.db_client + .execute(&lock.statements[STATEMENT_DELETE_EXPIRED], &[]) + .await?; Ok(()) } pub async fn prepare_statements(db: &Client) -> Result<[Statement; N_STATEMENTS], Error> { - Ok([db.prepare("SELECT url FROM links WHERE id = $1").await?, - db.prepare("INSERT INTO links (id, url) VALUES ($1, $2)").await?, - db.prepare("INSERT INTO links (id, url, valid_until) VALUES ($1, $2, $3)").await?, - db.prepare("DELETE FROM links WHERE valid_until < NOW()").await? + Ok([ + db.prepare("SELECT url FROM links WHERE id = $1").await?, + db.prepare("INSERT INTO links (id, url) VALUES ($1, $2)") + .await?, + db.prepare("INSERT INTO links (id, url, valid_until) VALUES ($1, $2, $3)") + .await?, + db.prepare("DELETE FROM links WHERE valid_until < NOW()") + .await?, ]) } pub async fn prepare_tables(db: &Client) -> Result<(), Error> { db.execute("CREATE TABLE IF NOT EXISTS links (id TEXT PRIMARY KEY, url TEXT NOT NULL, valid_until TIMESTAMP NOT NULL)", &[]).await?; Ok(()) -} \ No newline at end of file +} diff --git a/src/linkgen.rs b/src/linkgen.rs index 070ae30..8526dac 100644 --- a/src/linkgen.rs +++ b/src/linkgen.rs @@ -5,10 +5,15 @@ pub fn generate_link_id(length: u32) -> String { let alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"; let mut link = String::with_capacity(length as usize); for _ in 0..length { - link.push(alphabet.chars().nth(rng.sample(Uniform::new(0u8, 64u8)) as usize).unwrap()); + link.push( + alphabet + .chars() + .nth(rng.sample(Uniform::new(0u8, 64u8)) as usize) + .unwrap(), + ); } if link == "create" || link == "p" { return generate_link_id(length); } return link; -} \ No newline at end of file +}