mysql_async updates

* More shorthand usage for clearer code in invite create
This commit is contained in:
shockrah 2021-03-30 22:43:07 -07:00
parent 54f4dd53be
commit 4cbbfdd7a2

View File

@ -2,7 +2,7 @@ use std::time::{SystemTime, Duration, UNIX_EPOCH};
use mysql_async::{params, Pool}; use mysql_async::{params, Pool};
use mysql_async::prelude::Queryable; use mysql_async::prelude::Queryable;
use mysql_async::error::Error as SqlError; use mysql_async::Error as SqlError;
use crate::{BigInt, Invite, Response}; use crate::{BigInt, Invite, Response};
@ -16,16 +16,16 @@ impl Invite {
return Ok(Response::RestrictedInput(format!("<{}> not found", id))) return Ok(Response::RestrictedInput(format!("<{}> not found", id)))
} }
let conn = p.get_conn().await?; let mut conn = p.get_conn().await?;
let q = "SELECT uses, expires FROM invites WHERE id = :id "; let q = "SELECT uses, expires FROM invites WHERE id = :id ";
let (_, data_row): (_, Option<(Option<BigInt>, bool)>) = let row: Option<(Option<BigInt>, bool)> =
conn.first_exec(q, params!{"id" => id}).await?; conn.exec_first(q, params!{"id" => id}).await?;
return if let Some(row) = data_row { return if let Some((uses, expires)) = row {
Ok(Response::Row(Invite{ Ok(Response::Row(Invite{
id, id,
uses: row.0, uses,
expires: row.1, expires,
})) }))
} else { } else {
Ok(Response::Empty) Ok(Response::Empty)
@ -46,9 +46,9 @@ impl Invite {
} }
pub async fn add(&self, p: &Pool) -> Result<(), SqlError> { pub async fn add(&self, p: &Pool) -> Result<(), SqlError> {
let conn = p.get_conn().await?; let mut conn = p.get_conn().await?;
conn.prep_exec( conn.exec_drop(
"INSERT INTO invites (id, uses, expires) "INSERT INTO invites (id, uses, expires)
VALUES (:id, :uses, :expires)", params!{ VALUES (:id, :uses, :expires)", params!{
"id" => self.id, "id" => self.id,