From 202e3e2e1ae2dd16ed4ebf4169834e4b9dd24458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Djk=C3=A1=C5=A5o?= Date: Wed, 14 Feb 2024 13:44:29 +0100 Subject: [PATCH] sqlx --- .env | 1 + .gitignore | 4 ++-- Cargo.toml | 6 ++---- src/other/notice.rs | 31 ++++++++++++++++--------------- 4 files changed, 21 insertions(+), 21 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000..01ec508 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +DATABASE_URL="" diff --git a/.gitignore b/.gitignore index dad345c..e9a20e7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,10 +2,10 @@ /target # Tokens -.env +# .env # Hidden files /src/.* # IDE config -.vscode \ No newline at end of file +.vscode diff --git a/Cargo.toml b/Cargo.toml index df96261..e4eb15a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,11 +16,9 @@ serenity = { version = "0.12.0", default-features = false, features = ["client", serenity_utils = "0.7.0" tokio = { version = "1.29.1", features = ["macros", "rt-multi-thread"] } regex = "1.9.0" -# sqlite = "0.32.0" -# async-sqlite = { version = "0.2.1", default-features = false } -async-rusqlite = "0.4.0" chrono = "0.4.31" +sqlx = {version="0.7.3", features=["runtime-tokio", "sqlite"]} [features] DEBUG = [] -RELEASE = [] \ No newline at end of file +RELEASE = [] diff --git a/src/other/notice.rs b/src/other/notice.rs index 5b3b0c6..27f5028 100644 --- a/src/other/notice.rs +++ b/src/other/notice.rs @@ -1,20 +1,16 @@ +use chrono::{Datelike, Local}; use serenity::prelude::*; -use chrono::{Local, Datelike}; - -// use async_sqlite::{rusqlite::{Rows, Statement}, ClientBuilder, JournalMode}; use crate::util::debug::send_error; use anyhow::Result; -use async_rusqlite::Connection; - pub async fn notice_wrapper(ctx: Context) { match notice(ctx.clone()).await { Ok(_) => return, Err(e) => { send_error(ctx.http.clone(), e.to_string()).await; - return + return; } } } @@ -22,7 +18,7 @@ pub async fn notice_wrapper(ctx: Context) { struct BirtdayRow { day: u8, month: u8, - nick: String + nick: String, } async fn notice(ctx: Context) -> anyhow::Result<()> { @@ -30,12 +26,16 @@ async fn notice(ctx: Context) -> anyhow::Result<()> { let day = local.day(); let month = local.month(); + let pool = sqlx::sqlite::SqlitePoolOptions::new() + .connect("my.db") + .await?; - let conn = Connection::open("my.db").await?; - - let stmt = conn.call(move |conn| { - conn.prepare("SELECT * FROM birthdays WHERE day=6 AND month=3;") - }).await?; + let birtdays: Vec = sqlx::query_as!( + BirtdayRow, + "SELECT * FROM birthdays WHERE day=6 AND month=3;" + ) + .fetch(&pool) + .await?; // let result = Vec::new(); // let stmt = client.conn(|conn| { @@ -50,18 +50,19 @@ async fn notice(ctx: Context) -> anyhow::Result<()> { let bd = BirtdayRow { day: row.get(1)?, month: row.get(2)?, - nick: row.get(3)? + nick: row.get(3)?, }; result.push(bd); } println!("VALUE: {:?}", result[0].day); // for db in ["birthdays", "events"] { - + // // let mut stmt = client.conn(|conn| { // // conn. // // }).await; // } Ok(()) -} \ No newline at end of file +} +