notifications
This commit is contained in:
		@@ -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)
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user