notification #282

Merged
philipp merged 13 commits from notification into staging 2024-03-20 16:19:14 +01:00
2 changed files with 30 additions and 11 deletions
Showing only changes of commit 28acee3085 - Show all commits

View File

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