Working on user preferences for dashboards

This commit is contained in:
jude
2024-07-04 20:52:36 +01:00
parent 218be2f0b1
commit f26682e6de
13 changed files with 132 additions and 780 deletions

View File

@ -6,9 +6,7 @@ use sqlx::MySqlPool;
use crate::consts::LOCAL_TIMEZONE;
pub struct UserData {
pub id: u32,
#[allow(dead_code)]
pub user: u64,
pub id: u64,
pub dm_channel: u32,
pub timezone: String,
pub allowed_dm: bool,
@ -23,7 +21,9 @@ impl UserData {
match sqlx::query!(
"
SELECT IFNULL(timezone, 'UTC') AS timezone FROM users WHERE user = ?
SELECT IFNULL(timezone, 'UTC') AS timezone
FROM users
WHERE id = ?
",
user_id
)
@ -48,7 +48,9 @@ impl UserData {
match sqlx::query_as_unchecked!(
Self,
"
SELECT id, user, dm_channel, IF(timezone IS NULL, ?, timezone) AS timezone, allowed_dm FROM users WHERE user = ?
SELECT id, dm_channel, IF(timezone IS NULL, ?, timezone) AS timezone, allowed_dm
FROM users
WHERE id = ?
",
*LOCAL_TIMEZONE,
user_id.get()
@ -64,7 +66,8 @@ SELECT id, user, dm_channel, IF(timezone IS NULL, ?, timezone) AS timezone, allo
sqlx::query!(
"
INSERT IGNORE INTO channels (channel) VALUES (?)
INSERT IGNORE INTO channels (channel)
VALUES (?)
",
dm_channel.id.get()
)
@ -73,7 +76,8 @@ INSERT IGNORE INTO channels (channel) VALUES (?)
sqlx::query!(
"
INSERT INTO users (name, user, dm_channel, timezone) VALUES ('', ?, (SELECT id FROM channels WHERE channel = ?), ?)
INSERT INTO users (id, dm_channel, timezone)
VALUES (?, (SELECT id FROM channels WHERE channel = ?), ?)
",
user_id.get(),
dm_channel.id.get(),
@ -85,7 +89,9 @@ INSERT INTO users (name, user, dm_channel, timezone) VALUES ('', ?, (SELECT id F
Ok(sqlx::query_as_unchecked!(
Self,
"
SELECT id, user, dm_channel, timezone, allowed_dm FROM users WHERE user = ?
SELECT id, dm_channel, timezone, allowed_dm
FROM users
WHERE id = ?
",
user_id.get()
)
@ -104,7 +110,9 @@ SELECT id, user, dm_channel, timezone, allowed_dm FROM users WHERE user = ?
pub async fn commit_changes(&self, pool: &MySqlPool) {
sqlx::query!(
"
UPDATE users SET timezone = ?, allowed_dm = ? WHERE id = ?
UPDATE users
SET timezone = ?, allowed_dm = ?
WHERE id = ?
",
self.timezone,
self.allowed_dm,