revert idea with Arc<DbPool> because sqlx is already Arc internally

This commit is contained in:
mykola2312 2024-03-02 17:57:32 +02:00
parent e3cf3fe655
commit 8d50da9ead
4 changed files with 7 additions and 7 deletions

View file

@ -8,7 +8,7 @@ use crate::db::DbPool;
pub async fn cmd_op(bot: Bot, msg: Message, db: DbPool) -> HandlerResult { pub async fn cmd_op(bot: Bot, msg: Message, db: DbPool) -> HandlerResult {
let admins: i64 = sqlx::query("SELECT COUNT(*) FROM user WHERE is_admin = 1") let admins: i64 = sqlx::query("SELECT COUNT(*) FROM user WHERE is_admin = 1")
.fetch_one(db.as_ref()) .fetch_one(&db)
.await? .await?
.get(0); .get(0);
@ -30,7 +30,7 @@ pub async fn cmd_op(bot: Bot, msg: Message, db: DbPool) -> HandlerResult {
let target = find_or_create_user(&db, target).await?; let target = find_or_create_user(&db, target).await?;
sqlx::query("UPDATE user SET can_download = 1, is_admin = 1 WHERE id = $1;") sqlx::query("UPDATE user SET can_download = 1, is_admin = 1 WHERE id = $1;")
.bind(target.id) .bind(target.id)
.execute(db.as_ref()) .execute(&db)
.await?; .await?;
event!( event!(

View file

@ -4,7 +4,7 @@ use std::sync::Arc;
use super::util::make_database_url; use super::util::make_database_url;
pub type DbPool = Arc<SqlitePool>; pub type DbPool = SqlitePool;
#[derive(sqlx::FromRow)] #[derive(sqlx::FromRow)]
pub struct User { pub struct User {

View file

@ -19,12 +19,12 @@ pub async fn create_user(
.bind(&user.last_name) .bind(&user.last_name)
.bind(can_download as i64) .bind(can_download as i64)
.bind(is_admin as i64) .bind(is_admin as i64)
.execute(db.as_ref()) .execute(db)
.await?; .await?;
let user: User = sqlx::query_as("SELECT * FROM user WHERE tg_id = $1 LIMIT 1;") let user: User = sqlx::query_as("SELECT * FROM user WHERE tg_id = $1 LIMIT 1;")
.bind(user.id.0 as i64) .bind(user.id.0 as i64)
.fetch_one(db.as_ref()) .fetch_one(db)
.await?; .await?;
Ok(user) Ok(user)
} }
@ -33,7 +33,7 @@ pub async fn find_or_create_user(db: &DbPool, user: &types::User) -> Result<User
let res: Result<User, sqlx::Error> = let res: Result<User, sqlx::Error> =
sqlx::query_as("SELECT * FROM user WHERE tg_id = $1 LIMIT 1;") sqlx::query_as("SELECT * FROM user WHERE tg_id = $1 LIMIT 1;")
.bind(user.id.0 as i64) .bind(user.id.0 as i64)
.fetch_one(db.as_ref()) .fetch_one(db)
.await; .await;
match res { match res {

View file

@ -22,6 +22,6 @@ async fn main() -> anyhow::Result<()> {
log_init(); log_init();
let db = db_init().await; let db = db_init().await;
bot_main(Arc::from(db)).await?; bot_main(db).await?;
Ok(()) Ok(())
} }