notifications

This commit is contained in:
philipp 2023-11-17 10:30:30 +01:00
parent e338c78d04
commit 28acee3085
2 changed files with 30 additions and 11 deletions

View File

@ -8,25 +8,35 @@ pub struct Notification {
pub user_id: i64, pub user_id: i64,
pub message: String, pub message: String,
pub read_at: NaiveDateTime, pub read_at: NaiveDateTime,
pub created_at: NaiveDateTime,
pub category: String, pub category: String,
pub link: Option<String>,
} }
impl Notification { impl Notification {
//pub async fn create(db: &SqlitePool, msg: String) -> bool { pub async fn create(
// sqlx::query!("INSERT INTO log(msg) VALUES (?)", msg,) db: &SqlitePool,
// .execute(db) user: &User,
// .await message: &str,
// .is_ok() category: &str,
//} link: Option<&str>,
) {
sqlx::query!(
"INSERT INTO notification(user_id, message, category, link) VALUES (?, ?, ?, ?)",
user.id,
message,
category,
link
)
.execute(db)
.await
.unwrap()
}
async fn for_user(db: &SqlitePool, user: &User) -> Vec<Self> { async fn for_user(db: &SqlitePool, user: &User) -> Vec<Self> {
sqlx::query_as!( sqlx::query_as!(
Log, Log,
" "SELECT * FROM notification WHERE user_id = {}",
SELECT id, user_id, message, read_at, category
FROM notification
WHERE user_id = {}
",
user.id user.id
) )
.fetch_all(db) .fetch_all(db)

View File

@ -0,0 +1,9 @@
CREATE TABLE IF NOT EXISTS "notification" (
"id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,
"user_id" INTEGER NOT NULL REFERENCES user(id),
"message" TEXT NOT NULL,
"read_at" DATETIME,
"created_at" DATETIME DEFAULT CURRENT_TIMESTAMP,
"category" TEXT NOT NULL,
"link" TEXT
);