Add a Mention model

This commit is contained in:
Bat
2018-06-20 19:22:34 +01:00
parent 24ef3d00d1
commit e074af57ff
9 changed files with 70 additions and 18 deletions
+37
View File
@@ -0,0 +1,37 @@
use diesel::{self, PgConnection, QueryDsl, RunQueryDsl, ExpressionMethods};
use models::{
comments::Comment,
posts::Post
};
use schema::mentions;
#[derive(Queryable, Identifiable)]
pub struct Mention {
pub id: i32,
pub mentioned_id: i32,
pub post_id: Option<i32>,
pub comment_id: Option<i32>
}
#[derive(Insertable)]
#[table_name = "mentions"]
pub struct NewMention {
pub mentioned_id: i32,
pub post_id: Option<i32>,
pub comment_id: Option<i32>
}
impl Mention {
insert!(mentions, NewMention);
get!(mentions);
find_by!(mentions, find_for_user, mentioned_id as i32);
pub fn get_post(&self, conn: &PgConnection) -> Option<Post> {
self.post_id.and_then(|id| Post::get(conn, id))
}
pub fn get_comment(&self, conn: &PgConnection) -> Option<Comment> {
self.post_id.and_then(|id| Comment::get(conn, id))
}
}
+1
View File
@@ -41,6 +41,7 @@ pub mod comments;
pub mod follows;
pub mod instance;
pub mod likes;
pub mod mentions;
pub mod notifications;
pub mod post_authors;
pub mod posts;