diff --git a/migrations/1_init.sql b/migrations/1_init.sql index 9debe35..579b63c 100644 --- a/migrations/1_init.sql +++ b/migrations/1_init.sql @@ -10,6 +10,9 @@ CREATE TABLE "user" has_private_chat INTEGER NOT NULL ); +CREATE INDEX idx_user_tg_id + ON "user"(tg_id); + CREATE TABLE "chat" ( id INTEGER PRIMARY KEY AUTOINCREMENT, @@ -19,6 +22,9 @@ CREATE TABLE "chat" can_download INTEGER NOT NULL ); +CREATE INDEX idx_chat_tg_id + ON "chat"(tg_id); + CREATE TABLE "link" ( id INTEGER PRIMARY KEY AUTOINCREMENT, diff --git a/src/bot/bot.rs b/src/bot/bot.rs index 2dd008d..b6399f8 100644 --- a/src/bot/bot.rs +++ b/src/bot/bot.rs @@ -12,6 +12,7 @@ use tracing::{event, Level}; use super::start::handle_new_chat_member; use super::types::*; +use crate::bot::notify::notify_admins; use crate::db::DbPool; use super::dl::cmd_download; diff --git a/src/bot/op.rs b/src/bot/op.rs index a580b6a..d26eb9f 100644 --- a/src/bot/op.rs +++ b/src/bot/op.rs @@ -4,7 +4,7 @@ use teloxide::prelude::*; use tracing::{event, Level}; use super::types::HandlerResult; -use crate::db::user::{create_user, find_or_create_user}; +use crate::db::user::find_or_create_user; use crate::db::DbPool; pub async fn cmd_op(bot: Bot, msg: Message, db: DbPool) -> HandlerResult { @@ -15,7 +15,10 @@ pub async fn cmd_op(bot: Bot, msg: Message, db: DbPool) -> HandlerResult { if let Some(tg_user) = msg.from() { if admins == 0 { - let user = create_user(&db, tg_user, true, true).await?; + let user = find_or_create_user(&db, tg_user).await?; + sqlx::query("UPDATE user SET can_download = 1 AND is_admin = 1 WHERE id = $1;") + .bind(user.id) + .execute(&db).await?; event!( Level::INFO, diff --git a/src/bot/request.rs b/src/bot/request.rs index f5e23e5..05697c4 100644 --- a/src/bot/request.rs +++ b/src/bot/request.rs @@ -52,5 +52,5 @@ pub async fn cmd_request(bot: Bot, msg: Message, text: String, db: DbPool) -> Ha bot.send_message(msg.chat.id, t!("request_added")).await?; } - todo!() + Ok(()) }